我想知道方法List<>.Sort是否实际更改了列表,或者它是否未触及。
我只想出了以下解决方案,感觉不是最理想的解决方案:
var fooList = new List<Foo>();
var tempList = fooList.ToList();
fooList.Sort(new FooComparer());
if (fooList.SequenceEqual(tempList))
{
//Sequence is same...
}
else
{
//Sequence is different...
}
希望有比这更快的东西,因为Sort已经花费了相当长的时间来处理手头的数据,现在额外的tempList并且将两个集合都放在Enumerable.SequenceEqual中,只是给了我鸡皮疙瘩。
答案 0 :(得分:3)
听起来您只想检查现有列表是否已经订购。
你可以更简单地做到这一点;只需循环遍历列表,并检查是否有任何元素小于其前一个元素。