LINQ从主集合中删除集合

时间:2014-08-06 07:01:09

标签: c# linq

我有两个系列:

List<masterDataCollection> master = client.GetAllMasterData().ToList();
List<selectedDataCollection> selected = client.GetAllSelectedData.ToList();

如何使用LINQ从主列表中删除所选列表?有快速的方法吗?

2 个答案:

答案 0 :(得分:1)

最好的解决方案通常是使用RemoveAll()方法。 由于您要根据ID删除,您可以执行以下操作;

var selectedIds = selected.Select(x => x.Id).ToList<Int>(); //Given that they are integers.
master.RemoveAll(x => selectedIds.Contains(x.Id));

答案 1 :(得分:0)

如果两个类型都有id字段,并且所选列表中的所有ID都存在于主列表中:

selected.ForEach(q => master.Remove(master.Single(l => l.Id == q.Id)));