我有两个系列:
List<masterDataCollection> master = client.GetAllMasterData().ToList();
List<selectedDataCollection> selected = client.GetAllSelectedData.ToList();
如何使用LINQ从主列表中删除所选列表?有快速的方法吗?
答案 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)));