请记住,如果比较所有成员,则不需要稳定的排序。根据要求,2.0解决方案可以如下所示:
public void SortList() {
MyList.sort(delegate(MyClass a, MyClass b)
{
int xdiff = a.x.CompareTo(b.x);
if (xdiff != 0) return xdiff;
else return a.y.CompareTo(b.y);
});
}
请注意,此2.0解决方案仍然比流行的3.5 Linq解决方案更可取,它执行就地排序并且不具有Linq方法的O(n)存储要求。除非您当然希望原始的List对象保持不变。