Вопрос по c#, linq – Получайте разные и общие предметы в двух массивах с помощью LINQ [закрыто]

19

Например, у меня есть два массива:

var list1 = string[] {"1", "2", "3", "4", "5", "6"};
var list2 = string[] {"2", "3", "4"};

То, что я пытаюсь сделать, это -

Get common items from list1 and list2 (eg. {"2", "3", "4"}) Get different items list1 and list2 (eg. {"1", "5", "6"})

Итак, я попробовал с LINQ и -

var listDiff = list1.Except(list2); //This gets the desire result for different items

Но,

var listCommon = list1.Intersect(list2); //This doesn't give me desire result. Comes out as {"1", "5", "6", "2", "3", "4"};

Есть идеи?

Ye Myat Aung - Вы должны увидетьdelete ссылка под вопросом. Henk Holterman
Еслиlist1 а такжеlist2 уже существует, вышеупомянутый систакс в порядке. Это работает для меня ... MoonKnight
Дурак я. На самом деле, Intersect работает, просто что другая часть для вывода массива в текстовое поле была испорчена. Спасибо всем! Ye Myat Aung
Вам не хватает 2new в вашем синтаксисе. Это не скомпилируется. Использование:var list2 = new string[] {"2", "3", "4"}; juergen d
Он должен работать.list1.Intersect(list2) возвращает "2", "3", "4". nemesv

Ваш Ответ

1   ответ
25

вы пишете содержимоеlistDIff во-первых, и подумал, что это было изlistCommon.)Intersect методdoes дать вам элементы, которые существуют в обоих списках:

var list1 = new string[] {"1", "2", "3", "4", "5", "6"};
var list2 = new string[] {"2", "3", "4"};
var listCommon = list1.Intersect(list2);
foreach (string s in listCommon) Console.WriteLine(s);

Выход:

2
3
4

Похожие вопросы