C# 如何检查列表';s值是否包含在另一个列表中?

C# 如何检查列表';s值是否包含在另一个列表中?,c#,linq,list,C#,Linq,List,嗨,伙计们,我对LINQ比较陌生,所以不是最棒的知识,但我很确定这可以用它来完成 我有两个列表,一个属性应用程序列表和一个工程师技能集列表 PropertyApplication对象有一个具有applianceTypeId的设备子对象 engineerSkillset对象仅具有此applianceTypeId 我需要检查该列表中是否有一个设备具有工程师技能集列表中不存在的applianceTypeId 非常感谢 试试这个: if(listA.Any(x=>list.B.Contains(y

嗨,伙计们,我对LINQ比较陌生,所以不是最棒的知识,但我很确定这可以用它来完成

我有两个列表,一个属性应用程序列表和一个工程师技能集列表

PropertyApplication对象有一个具有applianceTypeId的设备子对象

engineerSkillset对象仅具有此applianceTypeId

我需要检查该列表中是否有一个设备具有工程师技能集列表中不存在的applianceTypeId

非常感谢

试试这个:

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

}
其中
listA
propertyalliance的列表
listB
工程师技能集的列表
,尝试以下方法:

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


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

如果您只想知道是否存在,我将使用:

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

这将有效地从
propertyapplications
创建一组设备类型,从工程师的集合中删除任何设备类型,并查看结果中是否有任何内容。我希望这比检查每个工程师和每个设备的答案更有效。

你需要知道哪些设备适合这一类别,或者是否有?只是是否有设备ID不在我的工程师技能集列表中
if (propertyAppliances.Select(pa => pa.Appliance.TypeId)
                      .Except(engineers.Select(eng => eng.ApplianceTypeId))
                      .Any())