关于C#:如何按照.NET 2.0中的特定属性对列表进行排序?

How to sort a list by a specific property in .NET 2.0?

本问题已经有最佳答案,请猛点这里访问。

在.NET 4.0中,只需使用Linq按特定属性快速排序列表:

1
2
  List<Point> list = ...;    
  sorted = list.OrderBy(p => p.X).ToList(); // sort list of points by X

当您不能使用.NET 4.0 LINQ语法时,您能做类似的事情吗?

有单行排序语法吗?


您需要使用一个委托,几乎是一行代码:)

1
2
3
list.Sort(delegate(Point p1, Point p2){
        return p1.X.CompareTo(p2.X);
});

检查排序方法,取Comparison。可从.NET 2.0获得

1
2
3
4
5
6
7
8
9
10
var list = new List<Point>{ /* populate list */ };

list.Sort(Comparison);


public int Comparison (Point a, Point b)
{
    //do logic comparison with a and b
    return -1;
}