Существует ли метод в Linq, где можно использовать для создания строк SQL как "... где (a=1) ИЛИ (a=2)"?
Вы, безусловно, можете сделать это в одобренном пункте (метод расширения). Если вам нужно динамически строить сложный запрос, вы можете использовать PredicateBueld .
var query = collection.Where( c => c.A == 1 || c.B == 2 );
Или используя предикатный элемент
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 );
В вашем . Где ()
Вызов Используйте стандартный логический «или» оператор, ||
.
var query = items.Where(item => (item == 1 || item == 2));
Все то, где звонок является логическим сравнением на все, что вы хотите, чтобы вы могли заполнить его как можно больше условной логики, поскольку вы хотите.
Вы можете использовать стандартные .NET Boolean Operators в вашем предложении White Where:
MyDataSource.Where(data => data.a == 'a' || data.a == 'b')
Вы используете все те же операторы, что и в обычном C # ===> || для "или" && for "и" и т. Д.
var something = from s in mycollection
where s.something == 32 ||
s.somethingelse == 45
select s