На одном из собеседований на работу задали мне задачу, несложную такую задачу, но сразу код я написать не смог. Написал уже дома.
Итак задача: есть у вас массив чисел (предположим целочисленный массив). Все числа в нем разные, но нектороые числа имеют дубликаты. Как найти эти числа?Интуитивно я понял, что для решения этой задачи необходимо использовать LINQ. И вот кусок кода, решающий эту задачу:
int[] array = new int[]{1,2,3,4,5,6,7,8,9,0,4}; var result = array // группируем по ключу. // в данном случае ключ // и есть наши числа .GroupBy(key => key) // выбираем те группы, // число элементов в которых больше 1 .Where(gr => gr.Count() > 1) // выбираем ключи (числа). // определить их местоположение - дело техники .Select(gr => gr.Key); foreach (var item in result) { Console.WriteLine(item); }Кому нравится LINQ в виде запроса можно сделать так:
var result = from num in array group num by num into newgroup where newgroup.Count() > 1 select newgroup.Key;