Подтвердить что ты не робот

Linq выбор элементов, которые существуют в обоих списках

У меня есть 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}

Я смотрел на пересечение, но кажется, что это будет работать, только если оба списка одного типа.

Любая помощь будет принята с благодарностью.

Спасибо.

4b9b3361

Ответ 1

Решение LINQ:

myObjectList = myObjectList.Where(X => idList.Contains(X.id)).ToList();

Ответ 2

IEnumerable<myObject> matches = myObjectList.Join(
    idList,
    o => o.Id,
    id => id,
    (o, id) => o);