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

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

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"};

Есть идеи?

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

Ответы на вопрос(1)

Решение Вопроса

вы пишете содержимое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

Ваш ответ на вопрос