Linq to SQL - 将列表匹配到另一个列表
本文关键字:列表 另一个 to SQL Linq | 更新日期: 2023-09-27 18:35:21
我有一个表格公司。和另一个表公司类型。
一家公司可以有多种类型。
我想使用选择类型列表(加载到字符串列表中)搜索公司。
如果公司只有一种类型,我会执行以下操作:
Where searchTypes.Contains(Company.Type)
但是,我如何执行更复杂的查询以在另一个表中获取具有所需类型的公司?
试试这个(从数据中获取公司类型和公司):
IEnumerable<string> companyTypes = data.CompanyTypes; // filter this as needed
IEnumerable<Company> companiesOfType = data.Companies.Where(c => c.Types.Any(t => companyTypes.Contains(t)));
这将使您获得至少具有一种过滤公司类型的所有公司。如果您希望所有公司都具有所有筛选的公司类型,则可以改为执行以下操作:
IEnumerable<string> companyTypes = data.CompanyTypes; // filter this as needed
IEnumerable<Company> companiesOfType = data.Companies.Where(c => c.Types.All(t => companyTypes.Contains(t)));