忍受我,我开始:如何使用WHERE ... IN ...类型的子句选择多个元素,如
select * from orders where orderid in (1, 4, 5)
LinqToSql中的?因为他们吓唬我,所以我宁愿没有lambda表达。提前谢谢!
答案 0 :(得分:13)
LINQ有“Contains”,就像“IN”一样,但反过来表示 - 一个元素不是“in”一个集合,一个集合“包含”一个元素。
int[] validIds = { 1, 4, 5 };
var query = from order in db.Orders
where validIds.Contains(order.Id)
select order
使用lambda更简单地表达(IMO):
int[] validIds = { 1, 4, 5 };
var query = db.Orders.Where(order => validIds.Contains(order.Id));
我意识到lambdas是“新的”,因此在某种程度上是可怕的,但是真的很值得用双手抓住它们。他们很可爱。
答案 1 :(得分: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;