C# 使用列表创建linq条件

C# 使用列表创建linq条件,c#,list,linq,where-clause,C#,List,Linq,Where Clause,我有一个从数据库中获取列表的方法 public List<SelectedCustomers> GetCustomers(List<int> customerNumbers) { var customers=_context.Customers.Where(?).Select(i=> new SelectedCustomers() {}).ToList() } public List GetCustomers(列出客户编号) { var customers=

我有一个从数据库中获取列表的方法

public List<SelectedCustomers> GetCustomers(List<int> customerNumbers)
{
   var customers=_context.Customers.Where(?).Select(i=> new SelectedCustomers() {}).ToList()
}
public List GetCustomers(列出客户编号)
{
var customers=\u context.customers.Where(?).Select(i=>newselectedcustomers(){}).ToList()
}
我想从用户提供客户编号的客户数据库中检索信息。数据库中的客户列表中大约有十万个客户。我不希望该方法每次调用时都获取整个列表并进行搜索,这需要花费太多的精力。但是,我不知道如何在where()中使用列表

总之,我不想取出所有我想要的列表并在列表中搜索用户请求的值,而是想用直接来自用户的列表进入数据库,并向我提供这些客户的信息

我希望我能解释一下。谢谢您的帮助。

试试这个:

var customers = _context.Customers.Where(c => customerNumber.Contains(c.CustomerId)).Select(i => new SelectedCustomers() { }).ToList()
试试这个:

var customers = _context.Customers.Where(c => customerNumber.Contains(c.CustomerId)).Select(i => new SelectedCustomers() { }).ToList()
尝试类似(未测试)的方法

public List GetCustomers(列出客户编号)
{
var customers=_context.customers.Where(x=customerNumbers.Contains(x.customerNumber)
.Select(i=>newselectedcustomers(){}).ToList()
}
这相当于()中的SQL
尝试类似(未测试)的方法

public List GetCustomers(列出客户编号)
{
var customers=_context.customers.Where(x=customerNumbers.Contains(x.customerNumber)
.Select(i=>newselectedcustomers(){}).ToList()
}

这相当于()中的SQL

.Where(customer=>customerNumber.Contains(customer.ID))
生成
Where customer.ID(1,4,5,8,9,…)
。您的意思是:
Where(customer=>customerNumbers.Contains(customer.Number))
?(为了清晰起见,将您的
customerNumber
重命名为
customerNumber
后。)是的,@jonsket在
customerNumber
中有多个客户编号,因此我将名称编辑为
customerNumber
.thnx
。其中(customer=>customerNumber.Contains(customer.ID))
在(1,4,5,8,9,…)中生成
WHERE customer.ID
。您的意思是:
WHERE(customer=>customerNumbers.Contains(customer.Number))
?(为了清晰起见,将
customerNumber
重命名为
customerNumbers
之后。)是的,@JonSkeet在
customerNumber
中有多个客户编号,因此我将该名称编辑为
customerNumbers