0

在 .NET 4.0 中,您可以简单地使用 LINQ 按特定属性快速排序列表:

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

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

是否有单行排序语法?

4

2 回答 2

3

检查Sort方法,它需要Comparison<T>. 可从.NET 2.0

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;
}
于 2013-04-01T11:38:20.173 回答
3

你需要使用一个委托,几乎是一个单行:)

list.Sort(delegate(Point p1, Point p2){
        return p1.X.CompareTo(p2.X);
});
于 2013-04-01T11:44:14.037 回答