如何對兩個不同的標準執行排序?按照兩個標準排序,字符串升序,int升序
例如,我有人對象像:
Person
具有屬性FirstName
(字符串),LastName
,和Rank
(INT)。
實施例的數據如下所示:
Xavier Smith 1
Alexander Smith 2
Alexander Smith 1
Bob Hawke 2
應該排序姓按字母順序,然後在等級,例如由此而來:
Alexander Smith 1
Alexander Smith 2
Bob Hawke 2
Xavier Smith 1
到目前爲止,我曾嘗試以下,但它不能正常工作:
peopleList
是List<Person>
peopleList.Sort(new Comparison<Person>((x,y) => x.Rank.CompareTo(y.Rank)));
peopleList.Sort(new Comparison<Person>((x, y) => string.Compare(x.Name, y.Name)));
感謝
編輯:到避免更改我的代碼太多,我真的想保留列表,如果我將上面的行更改爲:
peopleList.OrderBy(person => person.FirstName).ThenBy(person => person.Rank).ToList();
會給出剛剛排序完全相同的列表,正確嗎?
我真的必須閱讀更多關於LINQ,它似乎讓我的生活變得如此簡單! – baron 2010-03-04 03:23:27
@baron查看我的編輯,我在最近的編輯中對您的問題進行了評論。 – 2010-03-04 03:25:11
@baron我添加了一個可以和'Sort()'一起使用的比較器。 – 2010-03-04 03:36:59