我無法弄清楚如何做到這一點,這兩個問題不適合我。一個說我不能使用委託和比較器,另一個說它不能將lambda轉換成委託。通過日期屬性排序通用列表<T>
我有ScheduleItem
的GenericList<T>
。每個物品都有PaymentDate
屬性,這是DateTime?
。
我基本上想對這個屬性排序(舊 - >最新)。最簡單的方法是什麼?
首先我嘗試這樣做:
transaction.ScheduleCollection.Sort(delegate(ScheduleItem p1, ScheduleItem p2)
{
return p1.PaymentDate.CompareTo(p2.PaymentDate);
});
而且我得到這兩個錯誤:
無法轉換爲鍵入「System.Collections.IComparer」 匿名方法,因爲它不是委託類型
'System.Nullable'不包含 'CompareTo'的定義,並且沒有擴展方法'CompareTo'接受第一個類型「System.Nullable」 0參數可以發現 (是否缺少using指令或程序集引用?)
而另外一個我想是這樣的:
transaction.ScheduleCollection.Sort((lhs, rhs) => (lhs.PaymentDate.CompareTo(rhs.PaymentDate)));
,並得到
無法轉換爲鍵入「System.Collections.IComparer」 匿名方法,因爲它不是一個委託類型
public void Sort(IComparer comparer);
這是我必須使用的排序方法。
很難告訴你在做錯誤的完美解決方案的好東西,當你不提供任何代碼.. – 2012-04-16 18:35:17
當然,讓我補充一些。 – slandau 2012-04-16 18:35:35
添加代碼Jon。謝謝 – slandau 2012-04-16 18:38:34