2008-11-25 45 views

回答

13

LINQ具有「包含」,就像「IN」,但表達方式相反 - 一個元素不是「在」一個集合中,一個集合「包含」一個元素。

int[] validIds = { 1, 4, 5 }; 
var query = from order in db.Orders 
      where validIds.Contains(order.Id) 
      select order 

這是更簡單的表達(IMO)與拉姆達雖然:

int[] validIds = { 1, 4, 5 }; 
var query = db.Orders.Where(order => validIds.Contains(order.Id)); 

我知道lambda表達式是「新」,因此嚇人在一定程度上,但它確實值得抓住他們抓住用雙手。他們很可愛。

+0

你是男人喬恩,傷勢嚴重。感謝您的回答。 – Mats 2008-11-25 14:59:17

+0

Ooops ...我完全忘記了我的答案中的Contain擴展方法... – 2008-11-25 15:16:06

0
int[] arry = new int[] {1,4,5}; 

var q = from r in orders 
     where Array.IndexOf(array, orderid) != -1 
     select r; 

List<int> lst = new List<int>(new int[] {1,4,5}); 
var q = from r in orders 
     where lst.Contains(orderid); 
     select r; 
相關問題