为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Intersect 比较 2 个列表,但在第三个列表中应包含列表 2 中的匹配 AND 属性

使用 Intersect 比较 2 个列表,但在第三个列表中应包含列表 2 中的匹配 AND 属性

C#
慕的地10843 2023-12-17 19:55:50
我有 2 个对象列表。我正在使用 Intersect LINQ 运算符来匹配两个列表之间的任何匹配并将其设置为变量。在这个新形成的列表中,我只能获取匹配的值。我研究过 SelectMany,但认为这不是正确的解决方案。var CommonList = iMIScustomersList.Select(s1 => s1.Company).ToList().Intersect(zendeskCompaniesList.Select(s2 => s2.name).ToList()).ToList();我想获取匹配的值,并且从列表 2 中的匹配值中,我还想获取 id 属性。例如 zendeskCompaniesList 中的 s2.id。目前使用 Intersect 我只获得匹配的值,而没有从该匹配中获得其他属性。
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

您需要的是连接,而不是相交。


var CommonList = iMIScustomersList.Join(zendeskCompaniesList,

                      cust=>cust.Company,

                      comp=>comp.Name,

                      (cust,comp)=> new {Customer=cust,Company=comp}).ToList();

例如,


var iMIScustomersList = Enumerable.Range(1,10)

                                   .Select(x=> new Customer{Name = $"Name{x}", Company=$"Company{x}"});

var zendeskCompaniesList = Enumerable.Range(5,10)

                                   .Select(x=> new Company{Name=$"Company{x}", Location = $"Location{x}"});

var CommonList = iMIScustomersList.Join(zendeskCompaniesList,

                      cust=>cust.Company,

                      comp=>comp.Name,

                      (cust,comp)=> new {Customer=cust,Company=comp}).ToList();

样本输出

https://img1.sycdn.imooc.com/657ee2a50001a71803130554.jpg

查看完整回答
反对 回复 2023-12-17
  • 1 回答
  • 0 关注
  • 50 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信