c# – LINQ Where()单管或双管/&符号
发布时间:2020-12-15 18:32:58 所属栏目:百科 来源:网络整理
导读:任何人都在评论我们是否应该使用“我”或“II”和“”或“”在我们的LINQ Where()扩展/查询?与LINQ to SQL有什么区别?由此产生的表达树比星期五下午我的大脑还要多 谢谢, static void Main(string[] args){ var numbers = new int[] { 1,2,3,4,5,6,7,8,9 }
任何人都在评论我们是否应该使用“我”或“II”和“&”或“&&”在我们的LINQ Where()扩展/查询?与LINQ to SQL有什么区别?由此产生的表达树比星期五下午我的大脑还要多
谢谢, static void Main(string[] args) { var numbers = new int[] { 1,2,3,4,5,6,7,8,9 }; var q1 = numbers.Where(i => i == 1 | i == 2); var q2 = numbers.Where(i => i == 1 || i == 2); var q3 = numbers.Where(i => i == 1 & i < 3); var q4 = numbers.Where(i => i == 1 && i < 3); Write(q1); Write(q2); Write(q3); Write(q4); } static void Write<T>(IEnumerable<T> t) { foreach (var i in t) Console.Write("{0} ",i); Console.WriteLine(); } Results: 1 2 1 2 1 1 解决方法
你想要|| /&&.
那么,单管(| /&)通常用于逐位算术,并且(除了其他问题之外)可能使代码库更难理解;它可以在LINQ-to-Objects中工作(因为按位仍然为bool定义),但没有通常的短路.但是如果你的数据源是一个数据库(即混合中有一个表达式解析器),你可能会发现它会爆炸. 好;按位可能会产生误导;但是||和&&仍然是表达意图的最合乎逻辑和预期的方式.我为任何困惑道歉. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |