@Xveeder

Как извлечь только повторяющиеся N раз элементы массива в C#?

Добрый день, задача такая. Есть массив размером в 1,5 млн элементов, в каждом элементе лежит строка.
Эти строки повторяются, и мне необходимо из этого массива вытащить только те, значения, которые встречаются минимум N раз в массиве.

Например, строки "foo", "bar", и "new" встречаются, скажем по 3 раза в массиве (каждая), необходимо их переложить в новый массив, но не все вхождения, а только одно, которое будет говорить (да, чуваки, в том массиве ещё N таких как я, но здесь я один).

Спасибо.
  • Вопрос задан
  • 443 просмотра
Пригласить эксперта
Ответы на вопрос 2
@d-stream
Готовые решения - не подаю, но...
Linq .GropBy()
Ответ написан
Комментировать
@Kushin
Как вариант, через словарь

Инициализация самого словаря
Dictionary<string, int> StringCount = new Dictionary<string, int>();

Перебор исходного массива строк с записью в словарь строки и количества её повторов
foreach (var item in StrArr)                                                            
            {
                if (!StringCount.ContainsKey(item))
                    StringCount.Add(item, 1);
                else StringCount[item] += 1;
            }

На выходе получается ключ в виде строки и величина в виде её повторов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы