在c# Linq中检查对象列表是否包含另一个列表(只有一个属性)

本文关键字:列表 另一个 有一个 属性 包含 是否 Linq 检查 对象 | 更新日期: 2023-09-27 18:09:55

有两个list:

一个包含对象的数据库列表-> SystemList

public class MyObject
{
    public short Id { get; set; }
    public string Name { get; set; }
}

一个来自用户的列表,其中包含来自对象的id -> UserList

List<short> UserList;

我想在linq中编写一个查询,检查UserList中的所有项目是否都在SystemList

我暂时解决了这个问题:

bool hasAllItems = true;
foreach (var g in UserList) {
    hasAllItems = hasAllItems && SystemList.Any(a => a.Id == g);
}

在c# Linq中检查对象列表是否包含另一个列表(只有一个属性)

只能使用Linq:

bool hasAllItems = UserList.All(s => SystemList.Any(mo => mo.Id == s));