Самый быстрый способ найти элементы объединения и пересечения среди двух списка - PullRequest
0 голосов
/ 12 ноября 2009

Какой самый быстрый способ найти объединение и пересечение между двумя списками? Я имею в виду. у меня есть два списка сказать List <1>
1
2
3
4

Lis <2>
2
3

Наконец мне нужно получить вывод как
List <3>
Не определено
2
3
Не определено

Надеюсь, я согласен с моим требованием. Пожалуйста, дайте мне знать, если я запутался

Ответы [ 2 ]

4 голосов
/ 12 ноября 2009

LINQ уже имеет объединение и пересечение. Ваш пример не тот.

var set = new HashSet(list2)
var list3 = List1.Select(x => set.Contains(x) ? x : null).ToList();
0 голосов
/ 06 декабря 2011

Или вы можете сделать следующее, что даст вам пересечение:

        HashSet<int> list1 = new HashSet<int>() { 1, 2, 3, 4 };
        HashSet<int> list2 = new HashSet<int>() { 2, 3 };
        List<int> list3 = list1.Intersect(list2).ToList();
        for (int i = 0; i < list3.Count; i++)
        {
            Console.WriteLine(list3[i]);
        }
        Console.ReadLine();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...