时间:2010-07-26 10:45:10

标签: c# linq sorting benchmarking

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:1)

Sort使用未经优化的快速排序,在最坏的情况下具有n * n的复杂性。我不知道orderby使用了什么,但我知道它不使用相同的方法,因为它是一个稳定的排序,不像array.sort

答案 2 :(得分:0)

答案 3 :(得分:0)

对我来说,我将使用Linq和IComparable(当这是排序的最多或唯一的方式)。在这种情况下,项目是TestSort: IComparable<TestSort>

var sorted = ll.OrderBy(item => item); // This automatically used age to compare, as it's defined in CompareTo

ll可以是任何IEnumerable:List,Array等。

同样在CompareTo你可以有多种比较方法...例如,你可以这样做:

  public int CompareTo(TestSort other) {
        return this.age != other.age ? this.age.CompareTo(other.age) : this.dateOfBirth.CompareTo(other.dateOfBirth);
    }