2
多多包涵,我開始:如何選擇使用WHERE在如何在LinqToSql中執行WHERE ... IN ...子句?
select * from orders where orderid in (1, 4, 5)
在LinqToSql
多個元素...在...類型的條款?我寧願不要拉姆達表達,因爲他們嚇倒我。提前致謝!
多多包涵,我開始:如何選擇使用WHERE在如何在LinqToSql中執行WHERE ... IN ...子句?
select * from orders where orderid in (1, 4, 5)
在LinqToSql
多個元素...在...類型的條款?我寧願不要拉姆達表達,因爲他們嚇倒我。提前致謝!
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表達式是「新」,因此嚇人在一定程度上,但它確實值得抓住他們抓住用雙手。他們很可愛。
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;
你是男人喬恩,傷勢嚴重。感謝您的回答。 – Mats 2008-11-25 14:59:17
Ooops ...我完全忘記了我的答案中的Contain擴展方法... – 2008-11-25 15:16:06