如何在LinqToSql中执行WHERE … IN …子句?

忍受我,我开始:如何使用WHERE … IN …类型的子句选择多个元素

select * from orders where orderid in (1, 4, 5) 

在LinqToSql? 因为他们吓唬我,所以我宁愿没有lambda表达。 提前致谢!

LINQ具有“包含”,类似于“IN”但反过来表示 – 元素不在“集合”中,集合“包含”元素。

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

这更简单地表达(IMO)与lambda:

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

我意识到lambdas是“新的”,因此在某种程度上是可怕的,但是真的很值得用双手抓住它们。 他们很可爱。

 int[] arry = new int[] {1,4,5}; var q = from r in orders where Array.IndexOf(array, orderid) != -1 select r; 

要么

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