List Sort IComparer是检查集合是否更改的最快方法

时间:2015-04-15 14:39:57

标签: c# performance sorting

我想知道方法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中,只是给了我鸡皮疙瘩。

1 个答案:

答案 0 :(得分:3)

听起来您只想检查现有列表是否已经订购。

你可以更简单地做到这一点;只需循环遍历列表,并检查是否有任何元素小于其前一个元素。