Получить отдельный список между двумя списками в C # - PullRequest
13 голосов
/ 12 июля 2011

У меня есть два списка строк. Как получить список различных значений между ними или удалить вторые элементы списка из первого списка?

List<string> list1 = { "see","you","live"}

List<string> list2 = { "see"}

Результат должен быть {"you","live"}.

Ответы [ 3 ]

38 голосов
/ 12 июля 2011

Мне кажется, что тебе нужно Enumerable.Except():

var differences = list1.Except(list2);

И тогда вы можете просмотреть все различия:

foreach(var difference in differences)
{
    // work with each individual string here.
}
7 голосов
/ 12 июля 2011

Если вы хотите получить элементы из первого списка, кроме элементов во втором списке, используйте

list1.Except(list2)

Если вы хотите получить элементы, которые находятся в первом или во втором списке, но не в обоих, вы можете использовать

list1.Except(list2).Concat(list2.Except(list1))
1 голос
/ 04 октября 2016

Это хороший способ найти уникального ....

Уникальный из двух списков

        var A = new List<int>() { 1,2,3,4 };
        var B = new List<int>() { 1, 5, 6, 7 };

       var a= A.Except(B).ToList();
        // outputs List<int>(2) { 2,3,4 }
       var b= B.Except(A).ToList();
        // outputs List<int>(2) { 5,6,7 }
       var abint=  B.Intersect(A).ToList();
        // outputs List<int>(2) { 1 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...