繁体   English   中英

如何检查一个列表的值是否包含在另一个列表中?

[英]How to check if a List's value is contained within another List?

嗨,大家好,我不是LINQ的新手,所以不是我所学的知识,但是我很确定可以使用LINQ来完成。

我有两个列表,一个是propertyAppliances列表,另一个是engineerSkillsets列表。

propertyAppliance对象具有带有ApplianceTypeId的设备子对象

EngineerSkillset对象仅具有此ApplianceTypeId。

我需要检查该列表中是否存在某个设备,其设备类型ID在工程师技能组列表中不存在。

非常感激!

如果您只想知道是否有,我会使用:

if (propertyAppliances.Select(pa => pa.Appliance.TypeId)
                      .Except(engineers.Select(eng => eng.ApplianceTypeId))
                      .Any())

这有效地从propertyAppliances创建了一组设备类型,从工程师那里删除了该设备集中的所有设备类型,并查看结果中是否包含任何内容。 我希望这比检查每个工程师使用每种设备的答案更有效。

试试这个:

if(listA.Any(x=>list.B.Contains(y=>y.applianceTypeId==x.applianceTypeId))
{

}

其中listA是列表propertyAllianceslistB是列表engineerSkillsets

尝试这个:

var propertyAppliancesBasedOnApplianceTypeId = (from appliance in propertyAppliance
                                               from skillset in engineerSkillsets
                                               where !appliance.applianceTypeId.Contains(skillset.applianceTypeId)
                                               select appliance).Any();

要么

var propertyAppliancesBasedOnApplianceTypeId = propertyAppliance
                                               .Any(x=>!engineerSkillsets.Contains(x.applianceTypeId));

如果记录存在,则这两种方法都将返回true ,否则将返回false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM