LINQ Как вернуть общие объекты в нескольких списках - PullRequest
3 голосов
/ 11 марта 2020

Это может быть глупый вопрос, но я не могу найти решение для более чем 2 списков. Скажем, у меня есть следующие списки:

List<BusinessProcess> List1 = new List<BusinessProcess>(){ obj1, obj2, obj3, obj4 };
List<BusinessProcess> List2 = new List<BusinessProcess>(){ obj2, obj3 };
List<BusinessProcess> List3 = new List<BusinessProcess>(){ obj3, obj4 };

Я хочу вернуть объекты, которые равны среди всех 3 списков (в данном случае obj3). Как бы я сделал это с помощью LINQ?

1 Ответ

0 голосов
/ 11 марта 2020

На основании последних комментариев, решение:

Отфильтровать все общие BusinnesProcess, на основе obj.id

List<BusinessProcess> result = List1
.Where(y => List2.Select(x => x.id).Intersect(List3.Select(x => x.id))
    .Contains(y.id))
.ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...