NB: это LINQ to objects, я не уверен на 100%, работает ли он в LINQ to entity, и у меня нет времени проверять его прямо сейчас. На самом деле перевести это в x в [A, B, C] не так уж сложно, но вы должны проверить это сами.
Таким образом, вместо Содержит вместо ???? в вашем коде вы можете использовать Любой, который больше похож на LINQ:
// Filter the orders based on the order status
var filteredOrders = from order in orders.Order
where new[] { "A", "B", "C" }.Any(s => s == order.StatusCode)
select order;
Это противоположно тому, что вы знаете из SQL, поэтому это не так очевидно.
Конечно, если вы предпочитаете свободный синтаксис, вот он:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
Здесь мы снова видим один из сюрпризов LINQ (например, Joda-speech, который помещает select в конец). Однако в этом смысле вполне логично, что он проверяет, соответствует ли хотя бы один из элементов (то есть любой) в списке (наборе, коллекции) единственному значению.
person
Alexander Christov
schedule
26.07.2015