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>
,则通常会获得更好的性能(除非您一遍又一遍地阅读它)。     

要回复问题请先登录注册