次のように WHERE...IN... タイプの句を使用して複数の要素を選択するにはどうすればよいですか
select * from orders where orderid in (1, 4, 5)
LinqToSqlで?彼らは私を怖がらせるので、私はラムダ式を持たないことを好みます。
次のように WHERE...IN... タイプの句を使用して複数の要素を選択するにはどうすればよいですか
select * from orders where orderid in (1, 4, 5)
LinqToSqlで?彼らは私を怖がらせるので、私はラムダ式を持たないことを好みます。
LINQ には "IN" のような "Contains" がありますが、逆に表現されます。要素はセットの "内" ではなく、セットは要素を "含む" ということです。
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));
ラムダは「新しい」ものであるため、ある程度怖いことはわかっていますが、両手でつかむ価値は十分にあります。彼らは素敵です。
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;