หมายเหตุ:นี่คือ LINQ สำหรับวัตถุฉันไม่แน่ใจ 100% ว่ามันใช้งานได้ใน LINQ กับหน่วยงานหรือไม่และไม่มีเวลาที่จะตรวจสอบในตอนนี้ ในความเป็นจริงมันไม่ยากเกินไปที่จะแปลเป็นx ใน [A, B, C]แต่คุณต้องตรวจสอบด้วยตัวเอง
ดังนั้นแทนที่จะมีเป็นแทนของ???? ในรหัสของคุณคุณสามารถใช้ใด ๆซึ่งเป็น 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;
มันตรงกันข้ามกับสิ่งที่คุณรู้จาก SQL นี่คือสาเหตุที่มันไม่ชัดเจน
แน่นอนถ้าคุณชอบไวยากรณ์ที่คล่องแคล่วนี่คือ:
var filteredOrders = orders.Order.Where(order => new[] {"A", "B", "C"}.Any(s => s == order.StatusCode));
ที่นี่เราเห็นอีกหนึ่งความประหลาดใจของ LINQ (เช่น Joda-speech ซึ่งทำให้เลือกได้ในตอนท้าย) อย่างไรก็ตามมันค่อนข้างสมเหตุสมผลในแง่นี้ว่ามันตรวจสอบว่าอย่างน้อยหนึ่งรายการ (นั่นคือมี ) ในรายการ (ชุดคอลเลกชัน) ตรงกับค่าเดียว