2012-03-21 61 views
3

我有以下var result = new List<Tuple<int, List<ProductionReportEntry>, int>>();如何排序以下列表

我怎樣才能通過的最後一個整數排序呢,那結果將是前高後低。

感謝您的幫助。

+0

也許這是否行得通呢? http://msdn.microsoft.com/en-us/library/b0axc2h2.aspx – Matthew 2012-03-21 17:13:50

回答

8

最簡單的方法是使用LINQ的OrderByDescending()擴展方法,它會從高分到低分進行降序排列你的清單,將其推回列表:

result = result.OrderByDescending(t => t.Item3).ToList(); 

這是假設你想將它存回詮釋原有的參考,當然你可以把它分配給另一個變量,等等

或者,你可以做一個就地排序使用List.Sort()的重載需要Comparisson<T>代表:

// does descending since we put r on the lhs and l on the rhs... 
result.Sort((l, r) => r.Item3.CompareTo(l.Item3)); 

或者,你可以建立一個自定義IComparer<T>,當然你Tuple<int, List<PropertyReportEntry>, int>但得到相當難看......