我有2个项目清单;
IEnumerable<Investigator> investigators = RepositoryContext.InvestigatorRep.GetInvestigators(site.Site.Id, out totalCount);
var NewInvestigators = base.ActivePage.Investigators;
我在调查员中有30个项目,在NewInvesigators中有20个项目,两个都有属性ID,InvId我需要匹配。
var all = investigators.Where(b => crInvestigators.Any(a => a.InvestigatorId == b.Id));
我尝试了这个,但没有奏效 我想基于匹配这两个列表的Id创建一个新列表。如果Id匹配得到特定的调查员(基本上是基于NewInvesigators中存在的Id的研究者)。
我可以为每个人使用,但我想知道是否可以使用linq
?
在newinvestigator中我有一个对象,它有两个属性,InvestigatorId和Name。
在调查员中我有财产Id,City,country。 没有调查员名单中的姓名或调查员。
答案 0 :(得分:2)
您可以尝试这样的事情:
var result = investigators.Where(inv=>NewInvestigators.Any(ninv=>ninv.id == inv.investigatorId))
.OrderBy(inv=>inv.id);
获得相同结果的另一种方法是使用join
。
var result = from inv in investigators
join ninv in NewInvestigators
on inv.id equals ninv.investigatorId
order by inv.id
select inv;