c# - 在 Linq 中,使用 WHERE 时是否需要 SELECT?

标签 c# linq

如果您有一个使用 WHERE 子句的 Linq 语句,例如:

var result = someCollection.Where(x => x.value > 5).Select(x => x);

SELECT 是必需的还是多余的?如果我不尝试获取对象属性,那么我似乎可以安全地省略 SELECT,但不确定这是否正确......

最佳答案

在您的情况下不,这不是必需的,因为您正在选择对象。所以你可以:

var result = someCollection.Where(x => x.value > 5);

就更好的实践而言,我会删除多余的代码。

但是,如果您要选择特定属性,那么这可能很有用,例如:

var result = someCollection.Where(x => x.value > 5)
                   .Select(x=> x.SomeSpecificProperty);

还要添加一件事,对于查询表达式,您将需要选择。

var result = from x in someCollection
             where x.Value > 5
             select x;

但在编译时,上述查询表达式将转换为方法表达式,没有Select

关于c# - 在 Linq 中,使用 WHERE 时是否需要 SELECT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31299943/

相关文章:

C# 从路径中剪切文件名

c# - Chrome 版本 57.0.2987.133 阻止 asp.net 页面在回发后加载

c# - 是否可以使用属性更改 WCF 服务的 ServiceHostFactory?

c# - 空 linq 查询结果异常

c# - 对 IEnumerable 的更改不会在查询之间保留

c# - 通过对多个属性进行分组来创建对象列表

c# - (obj != null) 不起作用

c# - 为什么未加载ScriptableObject Assets 中的嵌套资源引用?

c# - 无法使用 NET.TCP 绑定(bind)访问 WCF 服务

c# - 何时在 Linq 中使用 Cast() 和 Oftype()