Uwaga: to jest LINQ to objects, nie jestem w 100% pewien, czy działa w LINQ to entity, i nie mam czasu, aby to sprawdzić teraz. W rzeczywistości nie jest zbyt trudne, aby przetłumaczyć to na x w [A, B, C], ale musisz sam to sprawdzić.
Więc zamiast Zawiera jako zamiennik ???? w swoim kodzie możesz użyć dowolnego, który jest bardziej 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;
Jest to przeciwieństwo tego, co znasz z SQL, dlatego nie jest to takie oczywiste.
Oczywiście, jeśli wolisz płynną składnię, jest to:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
Tutaj znowu widzimy jedną z niespodzianek LINQ (jak mowa Jody, która umieszcza wybór na końcu). Jednak w tym sensie jest całkiem logiczne, że sprawdza, czy co najmniej jeden z elementów (to znaczy którekolwiek ) na liście (zestaw, kolekcja) pasuje do pojedynczej wartości.