where作为LINQ的条件关键字。
where的右面是表达式
表达式可以方法返回值,但是where的右面最终是一个可检测真假的表达式
代码:
static void Main(string[] args) { var NumArray = new[] {0,1,2,3,4,5,6,7,8,9 }; var list = from i in NumArray where IsMethod(i) group i by i<4 into iList from max in iList where max<2 select max; foreach (var item in list) { Console.Write($"{item}"); } Console.ReadKey(); } private static bool IsMethod(int i) { return i>0&&i<4; }
本代码中第一次表达式中使用了方法的返回值。
另外where可以出现多次,几乎是不限制位置。
但是除了select的后面或者group作为结尾的后面,因为他们的LINQ的结尾。也不能做为LINQ的起手。
比如:
var list = from i in NumArray where i>0 where i<5 group i by i<4 into iList from max in iList where max<2 select max;
一个复杂的条件拆分成简单的条件,虽然代码看起来很新手,但是易读性确实很高。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/12714.html