首页 > 解决方案 > 如何在 LINQ 查询中选择现有对象

问题描述

我有一张桌子公司

CompanyId
CountryId
and so on...

然后有一个具有以下结构的对象列表(让我们将此列表数据集命名)

Id
CountryId
CurrencyId
TotalCost
and so on...

我想要做的是获取上述数据集中存在的所有公司,所以我试图编写如下查询:

IEnumerable<Company> companies = db.Companies.Where(a=a.CompanyId == dataset.Select(a=>a.CompanyId).ToList()

但它给了我一个错误,

运算符 '==' 不能应用于 typ int 和 List 的操作数

如何摆脱这个错误?

标签: c#linq

解决方案


IEnumerable<Company> companies = db.Companies.Where(a=> dataset.Select(b=>b.CompanyId).Contains(a.CompanyId)).ToList()

试试这个,你试图在单个 int 变量上使用 int == 列表.. 使用 contains 来做到这一点


推荐阅读