在c#中对类对象排序
这个问题在这里已经有了答案:
使用LINQ:
tocke = tocke.OrderBy(x=> x.t.X).ToList();
让t
公众。
没有LINQ的直接解决方案(只是列表排序,没有额外的列表创建)。
提供这个t
是公开的:
tocke.Sort((left, right) => left.t.X - right.t.X);
但是,恕我直言,最好的办法是让class tocka
可比:
class tocka: IComparable<tocka> {
...
public int Compare(tocka other) {
if (Object.RefrenceEquals(other, this))
return 0;
else if (Object.RefrenceEquals(other, null))
return 1;
return t.X - other.t.X; // <- Matthew Watson's idea
}
}
// So you can sort the list by Sort:
tocke.Sort();
你可以使用LINQ,比如像这样:
tocke.Sort( (x,y) => x.t.X.CompareTo(y.t.X) );
但首先你必须做出t
公众,至少获得时:
public Point t { get; private set; }
链接地址: http://www.djcxy.com/p/70939.html