gpt4 book ai didi

c# - 添加重复数字时,哪个数字字典集合会重新排序项目?

转载 作者:太空宇宙 更新时间:2023-11-03 19:05:54 24 4
gpt4 key购买 nike

我的 C# 程序允许用户按优先级对项目进行数字排名。我编写了一个例程,当用户修改项目的等级时,它会自动按等级对项目进行排序。因此,当优先级为 3 的项目更改为 1 时,例行程序会使用前 3 个项目。之前排名 1、2 的项目将变为 2、3。同样,当优先级 1 的项目变为优先级 3 时,排名 2、3 的项目将变为 1、2。

现有的集合类是否内置了此功能?如果是这样,也将不胜感激代码示例。

最佳答案

C# 有一个 SortedSet<T>可以自定义排序的集合 IComparer<T>由用户提供。

但是,集合不会对已经在集合中的项目的更改使用react,即如果您更改已经在集合中的项目的优先级,它不会被移动自动向上或向下。

您需要从 SortedSet<T> 中删除项目,更改其优先级,然后再将其添加回来。这样集合将把它放在新的地方,移动其他项目以适应顺序的变化:

SortedSet<Project> prioritizedProjects = new SortedSet<Project>(new CompareProjByPriority());
...
Project rePrioritize = ...;
prioritizedProjects.Remove(rePrioritize);
rePrioritize.Priority = 1;
prioritizedProjects.Add(rePrioritize);

关于c# - 添加重复数字时,哪个数字字典集合会重新排序项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27708380/

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