dst*_*str 85 .net linq where-clause
在Linq中是否有一个方法可用于构建SQL字符串,如"... where(a = 1)OR(a = 2)"?
tva*_*son 177
您当然可以在Where子句(扩展方法)中执行此操作.但是,如果需要动态构建复杂查询,则可以使用PredicateBuilder.
var query = collection.Where( c => c.A == 1 || c.B == 2 );
Run Code Online (Sandbox Code Playgroud)
或者使用PredicateBuilder
var predicate = PredicateBuilder.False<Foo>();
predicate = predicate.Or( f => f.A == 1 );
if (allowB)
{
predicate = predicate.Or( f => f.B == 1 );
}
var query = collection.Where( predicate );
Run Code Online (Sandbox Code Playgroud)
Sim*_*ele 24
您可以在单个where子句中使用标准.NET布尔运算符:
MyDataSource.Where(data => data.a == 'a' || data.a == 'b')
Run Code Online (Sandbox Code Playgroud)
Mua*_*Dib 18
您使用与普通C#===> ||中相同的运算符 用于"或"&&用于"和"等.
var something = from s in mycollection
where s.something == 32 ||
s.somethingelse == 45
select s
Run Code Online (Sandbox Code Playgroud)