如何解决Linq-to-Objects where子句带有2个谓词
|| 最好在&&运算符中包含2个Where子句或1个Where子句,还是没关系?list.Where(x => x.Prop1 == value1).Where(x => x.Prop2 == value2).ToList();
要么
list.Where(x => x.Prop1 == value1 && x.Prop2 == value2).ToList();
解决方法
最好在一个lambda中使用第二个同时进行两个测试。它将只循环一次该列表,并且仅经常调用一次委托。第一个版本使列表循环两次。
需要明确的是,这是更好的选择:
list.Where(x => x.Prop1 == value1 && x.Prop2 == value2).ToList();
哪个也可以写
var results =
(from x in list
where x.Prop1 == value1 && x.Prop2 == value2
select x).ToList();
如果您可以避免使用.ToList()
调用并将其用作IEnumerable<T>
,则通常会获得更好的性能(除非您一遍又一遍地阅读它)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。