2011-08-04 77 views
0

我在List()中保留對象列表。我想通過對象的屬性對這個列表進行排序。排序對象列表

例如,假設對象是了一封郵件和消息有:內容,日期,標題,...

我想作爲排序依據的消息的日期列表。

有沒有任何List方法或任何其他方法,使這種排序容易?

謝謝。

+0

這是一個重複的[這個問題](http://stackoverflow.com/questions/6840808/how-to-sort-a-user-created-listuserclass-collection-in -c/6840825#6840825) –

回答

2

是的,使用排序。如果您的列表是l:

l.Sort((a,b) => { 
    if (a == b) return 0; 
    if (a == null) return -1; 
    if (b == null) return 1; 

    return a.Date.CompareTo(b.Date) 
}); 

這假設date屬性是實現CompareTo()的類型。

+0

這假設日期是可以爲空的,並且不檢查b是否爲空...... –

+0

不需要檢查b - 如果正確實施,compareTo應該處理它 –

+0

不能,因爲您正在傳遞b.Date,所以如果if b == null然後你會得到一個NullReferenceException –

0

您可以實現IComparer<YourObject>並使用該比較器進行排序

0

如果使用仿製藥(即使用列表),你可以使用排序方法MSDN

見我的回答OT this question爲着手創建一個擴展方法,讓你做

myList.SortBy(x=>x.Date)