Coi*_*oin 13
不,你不能只是排序两次,因为.Net框架Sort()算法是一个不稳定的排序,这意味着当你对项目进行排序时,他们原来所在的顺序没有被考虑在内,也就是说,当两个项目相等时,他们相对于彼此的位置将是不确定的.
您需要做的是为您要排序的类实现自定义IComparer,并在对集合进行排序时使用该比较器:
class PointComparer : IComparer<Point>
{
public int Compare(Point x, Point y)
{
if (x.Y != y.Y)
{
return x.Y - y.Y;
}
else
{
return x.X - y.X;
}
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
List<Point> list = ...;
list.Sort(new PointComparer());
Run Code Online (Sandbox Code Playgroud)