c# - linq中的 "and"和 "wheres"之间有什么真正的区别吗

标签 c# .net linq

我有这个问题

 from a in objects
 where a.property1 == 2
 && a.property2 == 3
 select a

from a in objects
where a.property1 == 2
where a.property2 == 3
select a

我想知道语句的执行方式是否有任何真正的区别,以及使用其中任何一个的好处是什么

截至目前,我的问题是关于 linq to objects

最佳答案

您的第一个案例将转换为:

objects.Where(a => a.property1 == 2 && a.property2 == 3);

而后者将转换为:

objects.Where(a => a.property1 == 2).Where(a => a.property2 == 3);

不同之处在于后者将被过滤两次,而第一个在 lambda 中进行比较。

这是假设 LINQ-to-Objects;其他提供商将取决于实现情况。

关于c# - linq中的 "and"和 "wheres"之间有什么真正的区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15556672/

相关文章:

c# - 使用 C# 以编程方式更改 ipsec 规则的方法?

c# - 当我切换到不同的 XAML 时应用程序崩溃

c# - 有没有办法避免重复调用方法?

c# - 在文本框中插入整数值

c# - 更快的算法来改变位图中的色相/饱和度/亮度

c# - 带有 ROW_NUMBER 的 SQL 查询在 LINQ 中效率不高

c# - 所有内置 .Net 属性

c# - 将文件any\netstandard1.6\FSharp.Core.sigdata复制到obj\Release\Package\PackageTmp\any\netstandard1.6\FSharp.Core.sigdata失败

c# - WPF FrameworkElementFactory 图像创建无法为 MouseDownEvent 添加处理程序

LINQ Group按匿名类型