NB: đây là LINQ cho các đối tượng, tôi không chắc chắn 100% nếu nó hoạt động trong LINQ cho các thực thể và không có thời gian để kiểm tra nó ngay bây giờ. Trên thực tế, không quá khó để dịch nó thành x trong [A, B, C] nhưng bạn phải tự kiểm tra.
Vì vậy, thay vì Chứa như là một thay thế của ???? trong mã của bạn, bạn có thể sử dụng Bất kỳ LINQ-uish nào:
// 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;
Nó trái ngược với những gì bạn biết từ SQL, đây là lý do tại sao nó không quá rõ ràng.
Tất nhiên, nếu bạn thích cú pháp trôi chảy ở đây thì đó là:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
Ở đây, chúng ta lại thấy một trong những điều ngạc nhiên của LINQ (như bài phát biểu của Joda, chọn phần cuối). Tuy nhiên, điều này khá hợp lý theo nghĩa này là nó kiểm tra xem ít nhất một trong số các mục (đó là bất kỳ ) trong danh sách (bộ, bộ sưu tập) có khớp với một giá trị không.