如何检查List'的值是否包含在另一个List中
本文关键字:List 是否 包含 另一个 何检查 检查 | 更新日期: 2023-09-27 18:01:24
大家好,我对LINQ比较陌生,所以不是最好的知识,但我很确定这可以用它来完成。
我有两个列表,propertyAppliances列表和engineerSkillsets列表。
propertyAppliance对象有一个带有applianceTypeId的appliance子对象
engineerSkillset对象只有这个applianceTypeId。
我需要检查该列表中是否存在具有applicancetypeid的设备,该设备在工程师技能集列表中不存在。
感谢!
如果您只想知道是否有,我会使用:
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
为propertyAlliances
的列表,listB
为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