NB: ini adalah LINQ untuk objek, saya tidak 100% yakin apakah itu bekerja di LINQ ke entitas, dan tidak punya waktu untuk memeriksanya sekarang. Sebenarnya tidak terlalu sulit untuk menerjemahkannya menjadi x dalam [A, B, C] tetapi Anda harus memeriksanya sendiri.
Jadi, alih-alih Berisi sebagai pengganti ???? dalam kode Anda, Anda dapat menggunakan Apa saja yang lebih 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;
Ini kebalikan dari apa yang Anda ketahui dari SQL. Itulah mengapa tidak begitu jelas.
Tentu saja, jika Anda lebih memilih sintaks yang lancar di sini adalah:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
Di sini kita kembali melihat salah satu kejutan LINQ (seperti Joda-speech yang menempatkan pilih di akhir). Namun cukup logis dalam hal ini memeriksa apakah setidaknya salah satu item (yaitu ada ) dalam daftar (set, koleksi) cocok dengan nilai tunggal.