gpt4 book ai didi

c# - 从管理 UI 控制列表的排序顺序

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:35:13 26 4
gpt4 key购买 nike

我有一个数据列表,用户可以控制其排序顺序。

看起来像这样

Apples     /\  \/
Oranges /\ \/
pears /\ \/
banana /\ \/
Pineapples /\ \/
etc /\ \/

/\和/是上下箭头

当用户点击向上时,我想检索当前的排序顺序并从中取走一个(因此它具有较小的值并且在排序顺序中会更高。

当用户点击时我做相反的事情

我想我还需要确定列表中是否已经有我想要分配的新值的其他内容,并以相反的方向调整该项目的排序顺序

这看起来是实现此目标的好方法吗?

或者有更聪明的方法吗?

任何人都有示例代码。我正在使用 .net 3.5,所以 linq 没问题

列表存储在内存缓存中 - IList<mycustomobj>

感谢收到的任何建议

编辑:我担心的问题是最初没有排序顺序时 - 一切都将为零。我建议的算法有一个隐含的假设,即排序顺序将始终是连续的。但是当一行被删除时会发生什么?排序顺序列表中会有间隙,因此简单地加 1 并减去 1 可能没有任何区别 - 我该如何处理这种情况?

最佳答案

这是一种方法。在我的应用程序中,我们要么使用拖放,要么使用一个向上箭头和一个向下箭头来向上/向下移动所选元素。

如果您有一些确定排序顺序的属性,当用户单击向上箭头时,您只需要将当前元素的排序位置与前一个元素的排序位置进行置换,除非它是第一个元素(在这种情况下什么也不做)。对向下箭头使用相反的逻辑...

编辑:

如果您的项目还没有排序位置,您可以浏览列表并指定从 1 到 n 的排序位置。在删除行的情况下,将所有后续项目的排序位置减少一位。

关于c# - 从管理 UI 控制列表的排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/834664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com