NB: это LINQ для объектов, я не уверен на 100%, работает ли он в LINQ для объектов, и у меня нет времени проверять это прямо сейчас. На самом деле это не так уж сложно перевести на x в [A, B, C], но вы должны проверить это сами.
Итак, вместо Содержит в качестве замены ???? в вашем коде вы можете использовать Any, более LINQ-uish:
// 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 в конце). Однако в этом смысле вполне логично, что он проверяет, соответствует ли хотя бы один из элементов (то есть любой ) в списке (множество, коллекция) одному значению.