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# - 按查询中的行字段降序排序

c# - 从 C#.net 中的缩短 url 获取完整 url

c# - SandcaSTLe 不生成私有(private)方法文档 (C#)

C# COMException 读取 MSWord Shape 对象 Microsoft.Office.Interop.Word 的属性

c# - .NET 4.6 RC x64 比 x86(发行版)慢两倍

c# - Entity Framework 6 : audit/track changes

c# - 如何使用 Serilog 在 Json 中获取日志级别 - .NET Core 3.1

c# - .NET winforms 应用程序不会在 Windows 8.1 上出现

c# - 如何使用 LinqToTwitter 获取标签上的所有推文