我有2个名单:
myObject object1 = new myObject(id = 1, title = "object1"};
myObject object2 = new myObject(id = 2, title = "object2"};
myObject object3 = new myObject(id = 3, title = "object3"};
//List 1
List<myObject> myObjectList = new List<myObject>{object1, object2, object3};
//List 2
List<int> idList = new List<int>{2, 3};
有没有办法使用Linq只拉取第二个列表中存在的第一个列表中的对象,以便我留下:
{object2, object3}
我查看了相交,但似乎这只有两个列表属于同一类型时才有效。
非常感谢任何帮助。
感谢。
答案 0 :(得分:38)
LINQ解决方案:
myObjectList = myObjectList.Where(X => idList.Contains(X.id)).ToList();
答案 1 :(得分:13)
IEnumerable<myObject> matches = myObjectList.Join(
idList,
o => o.Id,
id => id,
(o, id) => o);