我正在使用List并对项目进行排序。
objListOrder.Sort(
delegate(Order p1, Order p2)
{
return p1.Title.CompareTo(p2.Title);
}
我遇到了一个问题,我需要按照列表中添加的顺序禁用排序和排序,而不是按相应键的字母顺序排序。
有没有办法在排序后清除排序?
答案 0 :(得分:1)
有没有办法在排序后清除排序?
不,列表不会保留有关其商品添加顺序的信息。
但是当然你可以在对象中添加一个额外的字段OriginalIndex
,并按此字段对列表进行排序。
答案 1 :(得分:1)
有没有办法在排序后清除排序?
没有。当您需要使用排序列表时,请使用
var newList = objListOrder.OrderBy(p=>p.Title).ToList();
创建原始列表
的已排序副本答案 2 :(得分:0)
这听起来像你在这里所说的是调用Sort
方法没有任何影响。鉴于List<T>
保证排序只是让比较器委托返回0
,这有效地告诉列表不应该移动项目
delegate(Order p1, Order p2) {
return 0;
}
请参阅Comparison<>