UWAGA: jest LINQ do obiektów, nie jestem 100% pewien, czy to działa w LINQ do podmiotów, a nie mają czasu, aby sprawdzić go teraz. W rzeczywistości nie jest trudno przetłumaczyć go na x w [A, B, C], ale musisz sprawdzić sam.
Tak więc zamiast zawiera jako zamiennik ???? w kodzie można użyć Wszelkie 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 wiemy z SQL to dlaczego nie jest to takie oczywiste.
Oczywiście, jeśli wolisz składnię płynnie tutaj jest:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
Tu znów widzimy jedną z niespodzianek LINQ (jak Joda-mowy, która stawia wybierz na końcu). Jest to jednak logiczne w tym sensie, że sprawdza, czy co najmniej jeden z elementów (czyli dowolna) na liście (zestaw, kolekcja) pasuje do pojedynczej wartości.
użycie Zawiera funkcję – Zaki
Dziękuję wszystkim, którzy odpowiedzieli tak szybko. Esp dla rozwiązania lambda. Jeszcze nie zrobiłem nic z wyrażeniami lambda. Zakładam, że zrobiłbym NOT zawiera używając (o =>! (Status.Contains (o.OrderHeaderOrderStatusCode))) – MartinS