sla*_*dau 2 .net c# sorting comparison generic-list
我无法弄清楚如何做到这一点,这两个问题对我不起作用.一个说我不能使用委托和比较器,另一个说它不能将lambda转换为委托.
我有一个GenericList<T>的ScheduleItem.每个项目都有一个PaymentDate属性DateTime?.
我基本上想要在该属性上对此列表进行排序(old-> latest).最简单的方法是什么?
首先我尝试了这个:
transaction.ScheduleCollection.Sort(delegate(ScheduleItem p1, ScheduleItem p2)
{
return p1.PaymentDate.CompareTo(p2.PaymentDate);
});
Run Code Online (Sandbox Code Playgroud)
我得到了这两个错误:
无法将匿名方法转换为类型'System.Collections.IComparer',因为它不是委托类型
'System.Nullable'不包含'CompareTo'的定义,并且没有扩展方法'CompareTo'可以找到接受类型'System.Nullable'的第一个参数(你是否缺少using指令或汇编引用?)
我尝试的另一个是这样的:
transaction.ScheduleCollection.Sort((lhs, rhs) => (lhs.PaymentDate.CompareTo(rhs.PaymentDate)));
Run Code Online (Sandbox Code Playgroud)
得到
无法将匿名方法转换为类型'System.Collections.IComparer',因为它不是委托类型
public void Sort(IComparer comparer);
Run Code Online (Sandbox Code Playgroud)
这是我必须使用的排序方法.