c# – 难以理解特定的lambda表达式
发布时间:2020-12-16 00:23:14 所属栏目:百科 来源:网络整理
导读:对于一个熟悉lambda的人来说,这是一个非常简单的问题.我刚刚学习它,并遇到了一个对我没有意义的表达. 根据我的理解,lambda表达式传入左侧指定的变量并运行右侧的代码.例如 myFunction = x = x + x; 所以myFunction(2)会返回4. 无论如何,我在这里看了一个linq
对于一个熟悉lambda的人来说,这是一个非常简单的问题.我刚刚学习它,并遇到了一个对我没有意义的表达.
根据我的理解,lambda表达式传入左侧指定的变量并运行右侧的代码.例如 myFunction = x => x + x; 所以myFunction(2)会返回4. 无论如何,我在这里看了一个linq查询,看到了这个: IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n); n =>那……那是做什么的?为什么不说OrderBy(n)?你正在做的就是将n传递给一个只返回n的函数. > _>这里发生了什么事? 解决方法
让我们打破这个:
numbers 这是一个整数集合. .Where(num => num % 2 == 0) 这就是说“在我的收藏中找到我的数字模数2 = 0”的所有项目. .OrderBy(n => n); 然后这是对列表进行排序.因为列表是整数,并且指定的项是整数,所以它将按数字排序,从最低到最高. 你需要n =>的原因n是因为你可以通过除值之外的其他东西进行排序.例如,将项目的长度称为字符串 .OrderBy(n => n.ToString().Length) 显然,对于整数,这没有任何意义.但是对于其他数据类型,比如类,这非常有用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |