gpt4 book ai didi

c# - 使用 LINQ 时,&& 和多个 where 子句有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 03:13:28 24 4
gpt4 key购买 nike

我是 LINQ 的新手,昨天发现你可以有多个 where 子句,例如:

var items = from object in objectList
where object.value1 < 100
where object.value2 > 10
select object;

或者你可以这样写:

var items = from object in objectList
where object.value1 < 100
&& object.value2 > 10
select object;

两者有什么区别?

最佳答案

第一个会被翻译成:

objectList.Where(o => o.value1 < 100).Where(o=> o.value2 > 10)

而第二个将翻译成:

objectList.Where(o => o.value1 < 100 && o.value2 > 10)

因此,在第一个序列中,您将得到一个第一个过滤序列,然后再次过滤(第一个序列包含值 < 100 的所有对象,第二个序列包含第一个序列中值 > 10 的所有对象),在第二个中,您将在同一个 labda 表达式中进行相同的比较。这对 Linq to objects 有效,对于其他提供程序,它取决于表达式的翻译方式。

关于c# - 使用 LINQ 时,&& 和多个 where 子句有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1648730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com