3 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
請(qǐng)記住,如果比較所有成員,則不需要穩(wěn)定的排序。根據(jù)要求,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);
});
}
請(qǐng)注意,此2.0解決方案仍然比流行的3.5 Linq解決方案更可取,它執(zhí)行就地排序并且不具有Linq方法的O(n)存儲(chǔ)要求。除非您當(dāng)然希望原始的List對(duì)象保持不變。

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
對(duì)于可以使用LINQ OrderBy和ThenBy(或者,ThenByDescending如果需要)的.Net版本:
using System.Linq;
....
List<SomeClass>() a;
List<SomeClass> b = a.OrderBy(x => x.x).ThenBy(x => x.y).ToList();
注意:對(duì)于.Net 2.0(或如果您不能使用LINQ),請(qǐng)參閱Hans Passant對(duì)這個(gè)問(wèn)題的回答。
- 3 回答
- 0 關(guān)注
- 864 瀏覽
添加回答
舉報(bào)