Nota: este é o LINQ to objects, não tenho 100% de certeza se ele funciona no LINQ to entidades e não tenho tempo para verificá-lo agora. De fato, não é muito difícil traduzi-lo para x em [A, B, C] mas você deve verificar por si mesmo.
Então, em vez de Contém como uma substituição do ???? No seu código, você pode usar Qualquer um que seja mais 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;
É o oposto do que você sabe do SQL, é por isso que não é tão óbvio.
Obviamente, se você preferir uma sintaxe fluente, aqui está:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
Aqui, novamente, vemos uma das surpresas do LINQ (como Joda-speech, que coloca select no final). No entanto, é bastante lógico nesse sentido que ele verifique se pelo menos um dos itens (que é algum ) em uma lista (conjunto, coleção) corresponde a um único valor.