Linq中有没有一种方法可以用来构建像"...where (a=1) OR (a=2)“这样的SQL字符串?
发布于 2010-01-20 21:19:18
你当然可以在Where子句(扩展方法)中做到这一点。但是,如果需要动态构建复杂查询,则可以使用PredicateBuilder。
var query = collection.Where( c => c.A == 1 || c.B == 2 );
或者使用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 );
发布于 2010-01-20 21:18:46
您可以在单个where子句中使用标准的.NET布尔运算符:
MyDataSource.Where(data => data.a == 'a' || data.a == 'b')
发布于 2010-01-20 21:19:17
您可以使用与常规C# ===> ||中相同的运算符表示"or“或”&&“表示"and”等。
var something = from s in mycollection
where s.something == 32 ||
s.somethingelse == 45
select s
https://stackoverflow.com/questions/2101540
复制相似问题