NB: Dies ist LINQ für Objekte. Ich bin nicht 100% sicher, ob es in LINQ für Entitäten funktioniert, und habe momentan keine Zeit, dies zu überprüfen. Tatsächlich ist es nicht allzu schwierig, es in [A, B, C] in x zu übersetzen , aber Sie müssen es selbst überprüfen.
Also, statt enthält als Ersatz für die ???? In Ihrem Code können Sie Any verwenden, das mehr LINQ-uish ist:
// 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;
Es ist das Gegenteil von dem, was Sie aus SQL kennen. Deshalb ist es nicht so offensichtlich.
Wenn Sie hier eine fließende Syntax bevorzugen, ist dies natürlich:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
Hier sehen wir wieder eine der LINQ-Überraschungen (wie die Joda-Rede, bei der Select am Ende steht). In diesem Sinne ist es jedoch ziemlich logisch, zu prüfen, ob mindestens eines der Elemente (dh eines ) in einer Liste (Satz, Sammlung) mit einem einzelnen Wert übereinstimmt.