NB: il s'agit de LINQ to objects, je ne suis pas sûr à 100% si cela fonctionne en LINQ to entity, et je n'ai pas le temps de le vérifier pour le moment. En fait, il n'est pas trop difficile de le traduire en x dans [A, B, C] mais vous devez vérifier par vous-même.
Donc, au lieu de Contient en remplacement de ???? dans votre code, vous pouvez utiliser Any qui est plus 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;
C'est le contraire de ce que vous savez de SQL, c'est pourquoi ce n'est pas si évident.
Bien sûr, si vous préférez une syntaxe fluide, voici:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
Ici, nous voyons à nouveau l'une des surprises LINQ (comme Joda-speech qui met select à la fin). Cependant, il est assez logique en ce sens qu'il vérifie si au moins un des éléments (c'est-à-dire n'importe lequel ) d'une liste (ensemble, collection) correspond à une seule valeur.