NB: esto es LINQ para objetos, no estoy 100% seguro si funciona en LINQ para entidades, y no tengo tiempo para verificarlo ahora. De hecho, no es demasiado difícil traducirlo a x en [A, B, C], pero debe verificarlo usted mismo.
Entonces, en lugar de Contiene como un reemplazo del ???? en tu código puedes usar Any, que es más 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;
Es lo opuesto a lo que sabes de SQL, por eso no es tan obvio.
Por supuesto, si prefiere una sintaxis fluida aquí es:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
Aquí nuevamente vemos una de las sorpresas de LINQ (como Joda-speech que pone select al final). Sin embargo, es bastante lógico en este sentido que verifique si al menos uno de los elementos (que es alguno ) en una lista (conjunto, colección) coincide con un valor único.
Alexander Christov
fuente