C#-列表排序-x和y
我有这个代码,我知道它正在对列表进行排序C#-列表排序-x和y,c#,.net,linq,list,lambda,C#,.net,Linq,List,Lambda,我有这个代码,我知道它正在对列表进行排序lstDMV。但是请帮我把它分解一下 lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate)); =>是什么意思?基于compare函数返回的整数,它是如何工作的 如果我对整数而不是日期进行排序,如何对我的lstDMV进行排序。 对于比较本身,请务必查看该方法。请参见其返回值: t1早于t2 0-->t1与t2相同 >0-->t1晚于t2 它被称为。来自MSDN =>标记称
lstDMV
。但是请帮我把它分解一下
lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate));
=>
是什么意思?基于compare函数返回的整数,它是如何工作的
如果我对整数而不是日期进行排序,如何对我的lstDMV
进行排序。
对于比较本身,请务必查看该方法。请参见其返回值:
- <0-->t1早于t2
- 0-->t1与t2相同
- >0-->t1晚于t2
- 它被称为。来自MSDN
=>标记称为lambda运算符。它用于lambda
表达式将左侧的输入变量与
右侧的lambda车身。Lambda表达式是内联的
与匿名方法相似但更灵活的表达式;他们是
广泛用于以方法语法表示的LINQ查询
对于排序操作,使用如下方法
lstDMV.Sort((int1, int2) => int1.CompareTo(int2));
中的lambda运算符
=>
lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate));
基本上创建一个新的delegare,其中包含一段要执行的代码。x和y作为参数经过
通过将代码更改为,可以对int列表进行排序
lstDMV.Sort((x, y) => x.CompareTo(y));
=>是一个lambda表达式运算符,您可以将其视为javascript中的匿名函数 在这种情况下 lstDMV.Sort((x,y)=>DateTime.Compare(x.NotifDate,y.NotifDate)); 它正在创建一个用作排序事件处理程序的函数。
编译器可以推断x和y的类型,因为它知道闭合delelegate的定义。首先,这些是Lambda表达式。 现在谈谈你的问题: =>是定义返回值的运算符 在您的情况下,
(x,y)
将返回日期时间的值。比较(x.NotifDate,y.NotifDate)
。
现在,列表的Sort()
-函数将根据DateTime.Compare(x.NotifDate,y.NotifDate)
的值对列表进行排序
请看MSDN文章:
这很有帮助。(其他人已经回答了你问题的部分)
如果我对整数而不是日期排序,如何对lstDMV排序
你可能想读一读。他们称之为多么巧合的评论:D
ints.Sort((i1, i2) => i1.CompareTo(i2));