如果您有使用WHERE子句的Linq语句,例如:
var result = someCollection.Where(x => x.value > 5).Select(x => x);
是否需要SELECT,或者它是多余的?看来我可以安全地省略SELECT如果我没有试图获取对象属性,但我不确定这是否正确......
答案 0 :(得分:4)
在您的情况下,不需要,因为您正在选择对象。所以你可以:
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
。
答案 1 :(得分:0)
这是多余的。 Select
更像功能map
(参见JavaScript,Haskell,Ruby)。如果您不打算将输入对象转换为与当前不同的形式,则无需使用Select
。
答案 2 :(得分:0)
在Linq中,使用WHERE时是否需要SELECT?
不,不是。
答案 3 :(得分:0)
不......这次没有必要......如果你想选择一个不同于“someCollection”的新对象,那将是必要的
类似的东西:
var result = someCollection.Where(x => x.value > 5).Select(x => new ObjName() { name = x.name, lastname = x.lastname });