如何比较两个列表并更改一个属性

dMi*_*lan -1 c# linq

我有一堂课:

public class Doc
{
   public int Id {get; set;}
   public string Name {get; set;}
   public bool IsActive {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

和两个列表Doc类型。

IsActive如果包含第二个列表的ID,如何编写LINQ来比较这些列表并更改第一个列表的属性。

ric*_*fox 5

给定目标列表的名称,targetDocs并且要检查文档是否存在的列表,请srcDocs尝试类似的操作(这里没有访问编译器的权限,因此无法测试):

targetDocs.ForEach(d => d.IsActive = srcDocs.Any(sd => sd.id == d.Id))
Run Code Online (Sandbox Code Playgroud)

我假设我们在谈论Lists而不是其他集合类型,因为为Lists 定义了ForEach扩展方法。