使用 linq 根据包含 IEnumerable<Guid> 的另一个列表过滤列表

Filter a list based on another list containing IEnumerable<Guid> using linq

我正在寻找一种方法来根据另一个仅包含 ID 的列表来过滤列表。如果List A不包含listOfGuids中的任何id,则获取不包含id的过滤List

IEnumerable<Guid> listOfGuids = some list of Guid.
var filteredList = ListA.All(x=>listOfGuids.Where(x=>x.id!={all the items in list of Guid}))

例如:

listOfGuids = {
    9c105700-98af-4c23-92ac-fd2dc5664b7a,
    7d6e0918-fb05-4b37-80f4-c7e5ccaa094d
}

ListA =[
    {id="9c105700-98af-4c23-92ac-fd2dc5664b7a", name="abc"},
    {id="7d6e0918-fb05-4b37-80f4-c7e5ccaa094d", name="def"},
    {id="6fb0bcf3-9ca6-40c8-9fa1-f7557ef09558", name="ghi"}
]

应该return filteredList as

[{{id="6fb0bcf3-9ca6-40c8-9fa1-f7557ef09558", name = "ghi"}}]

您想要项目 Where 列表 Contains 不正确 id:

var filteredList = ListA.Where(x => !listOfGuids.Contains(x.id))