c# - 为什么我的 C# 中的 List.Sort 方法颠倒了列表的顺序?

标签 c# .net sorting icomparable

我有一个通用列表中的项目列表:

  • A1(排序索引 1)
  • A2(排序索引 2)
  • B1(排序索引 3)
  • B2(排序索引 3)
  • B3(排序索引 3)

它们的比较器采用以下形式:

this.sortIndex.CompareTo(other.sortIndex)

当我对项目列表执行 List.Sort() 时,我得到以下顺序:

  • A1
  • A2
  • B3
  • B2
  • B1

从排序索引的正确顺序来看,它显然是有效的,但我真的不希望它重新排序“B”项。

我可以对我的比较器进行任何调整来解决这个问题吗?

最佳答案

OrderBy 保留相同项目的顺序:

myList = myList.OrderBy(item => item.SortIndex).ToList();

关于c# - 为什么我的 C# 中的 List.Sort 方法颠倒了列表的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2674266/

相关文章:

c# - 使用泛型避免缓存不同类型时的强制转换

c# - `Type.GetProperties` 属性顺序

c# - 发现循环依赖在哪里

.net - 在.Net中我需要进行双重检查锁定吗

c# - 如何找出以编程方式构建 dll 的 .net 运行时?

c# - SerialPort 编码 - 如何获得 8 位 ASCII?

c# - Linq 中的 IF else 语句

java - Android Firebase 多重排序

language-agnostic - 排序一个poset?

python - 使用自定义比较器按任一元组值对元组字典进行排序