有2个Where子句或1个Where子句与&&运算符或更不重要?
list.Where(x => x.Prop1 == value1).Where(x => x.Prop2 == value2).ToList();
Run Code Online (Sandbox Code Playgroud)
要么
list.Where(x => x.Prop1 == value1 && x.Prop2 == value2).ToList();
Run Code Online (Sandbox Code Playgroud)
最好在单个lambda中使用第二个测试和两个测试.它只会循环列表一次,并且只会经常调用一半代表.第一个版本循环列表两次.
需要明确的是,这是更好的选择:
list.Where(x => x.Prop1 == value1 && x.Prop2 == value2).ToList();
Run Code Online (Sandbox Code Playgroud)
哪个也可以写
var results =
(from x in list
where x.Prop1 == value1 && x.Prop2 == value2
select x).ToList();
Run Code Online (Sandbox Code Playgroud)
如果你可以避免.ToList()使用它并将其用作IEnumerable<T>,你通常会得到更好的性能(除非你反复阅读).
| 归档时间: |
|
| 查看次数: |
5061 次 |
| 最近记录: |