我有这段代码,我知道它正在对列表 lstDMV
进行排序。但请帮助我拆分一下。
lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate));
=>
是什么意思?基于从比较函数返回的整数,它是如何工作的?
如果我要按整数而不是日期排序lstDMV
,该怎么办?
=>
在lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate));
lstDMV.Sort((x, y) => x.CompareTo(y));
(其他人已经回答了你问题中的lambda运算符
部分)
如果我要按整数而不是日期排序,该怎么对我的lstDMV进行排序?
ints.Sort((i1, i2) => i1.CompareTo(i2));
=> 是一个lambda表达式运算符,你可以把它看作是JavaScript中的匿名函数
在这个例子中
lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate)); 它创建了一个函数,并被用作Sort事件的处理程序。 编译器可以推断出x和y的类型,因为它知道Close delegate的定义。
在你的情况下,(x,y)
将返回DateTime.Compare(x.NotifDate, y.NotifDate)
的值。
现在,你的List的Sort()
函数将根据DateTime.Compare(x.NotifDate, y.NotifDate)
的值对List进行排序。
看一下MSDN文章:http://msdn.microsoft.com/en-us/library/bb397687.aspx 它非常有帮助。