Dan*_*-SP 7 c# linq c#-3.0 c#-4.0
我一直在寻找类似的东西.我正在尝试根据列表B从更大的列表A中删除所有元素.
假设我得到一个包含100个不同IDS元素的通用列表,我得到另一个包含10条记录的特定元素的列表.我需要从第一个列表中删除第二个列表中不存在的所有元素.
我将尝试显示我实际上不知道它是如何工作的代码.
List<Obj> listA = new List<Obj>();
List<Obj> listB = new List<Obj>();
//here I load my first list with many elements
//here I load my second list with some specific elements
listA.RemoveAll(x => !listB.Contains(x));
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但它不起作用.如果我用一个List<int>类型尝试这个例子,它可以很好地工作,但我想用我的对象做到这一点.这个对象有一个ID,但我不知道如何在LINQ语句中使用这个ID.
Joe*_*Joe 24
您需要比较ID:
listA.RemoveAll(x => !listB.Any(y => y.ID == x.ID));
Run Code Online (Sandbox Code Playgroud)