有可能得到以下链接吗?
本文关键字:链接 有可能 | 更新日期: 2023-09-27 18:02:23
SQL查询
SELECT *
FROM tblOrders
WHERE CustomerId in (3455,4423,7655,1000)
LINQ查询
?假设我有一个id数组,那么我如何搜索?
int[4] _ids;
_ids[0]=3455
_ids[1]=4423
_ids[2]=7655
_ids[3]=1000
var _orders = (from o in tblOrders
where (o.CustomerId in _ids[])
select o);
上面的代码只是为了举例,我知道这是错误的。但是,这可能吗?
不,它不是。
试试这个:
var _orders = from o in tblOrders
where _ids.Contains(o.CustomerId)
select o;
您使用的关键字in
,它在c#中用于其他目的。它不像SQL
中的IN
。它在foreach
语句中使用。例如:
foreach(var _id in _ids)
Console.WriteLine(_id);
还用作泛型类型参数的泛型修饰符。有关后者的更多文档,请查看此处。
可以使用_ids数组的Contains
方法
var _orders = from o in tblOrders
where _ids.Contains(o.CustomerId)
select o;
使用如下代码
List<Orders> lstOrders = new List<Orders>();
Orders objOrders;
for (int index = 1; index <= 10; index++)
{
objOrders = new Orders();
objOrders.OrderID = index;
objOrders.Order = "Order_" + index.ToString();
objOrders.CustomerID = index;
lstOrders.Add(objOrders);
}
int[] _customers = { 1, 2, 3, 4, 5 };
List<Orders> lstFilteredOrders = new List<Orders>();
lstFilteredOrders.AddRange(lstOrders.FindAll(x => _customers.Any(y =>y == x.CustomerID)));