-
Intersect() 获取两个集合共有的部分
-
Except() 获取前有后没有的部分
- 自带方法如果操作复杂的集合的话,应该是匹配的是全部属性
List<int> a=new List<int>(){1,2,3}; List<int> b=new List<int>(){2,3,4}; var list=a.Intersect(b);//获取a,b共有的部分 2,3 List<int> 类型 var list=a.Except(b);//获取a有b没有的部分 1
-
获取两个集合中 Id 共有的部分
public class Model { public int Id{get;set;} public string Name{get;set;} } List<Model> a=new List<Model>() { new Model(){Id=1,Name="a"}, new Model(){Id=2,Name="b"} } List<Model> b=new List<Model>() { new Model(){Id=1,Name="a"}, new Model(){Id=3,Name="c"} } var r = a.Where(l => b.Exists(s => l.Id == s.Id)).ToList();//Id共有的部分,意思是 如果 a中的Id 一旦满足 与b中的Id元素一致,那么就获取a 中满足条件的部分 var r = a.Where(s => !b.Exists(l => s.Id == l.Id)).ToList();//a id有 b 没有的 部分
3.
var list = model.List.ToList(); var needDeleteSupploerList = controllerSupplierList.Where(s => !list.Exists(l => s.Id == l.Id)).ToList();