Поиск дубликатов без LINQ - C#
Формулировка задачи:
Есть список объектов класса Class1.
т.е. List<Class1>
Нужно вывести один раз ID объекта, который имеет дубликаты, и все Num, где он дублируется. И так для всех объектов
Т.е. вид примерно такой - asdbtr = 1,5,8,9; dsabte = 2,12,54,75 ...
Помогите решить, пожалуйста
Листинг программы
- public class Class1
- {
- public int Num; //номер по порядку
- public string ID; //идентификатор
- }
Решение задачи: «Поиск дубликатов без LINQ»
textual
Листинг программы
- // using System;
- // using System.Collections.Generic;
- List<Class1> sourceList = ...; // заполненный список
- Dictionary<string, List<int>> groups = new Dictionary<string, List<int>>();
- for (int index = 0; index < sourceList.Count; ++index)
- {
- Class1 current = sourceList[index];
- if (groups.ContainsKey(current.ID))
- {
- groups[current.ID].Add(index);
- }
- else
- {
- List<int> indices = new List<int>(4);
- indices.Add(index);
- groups[current.ID] = indices;
- }
- }
- foreach (var entry in groups)
- {
- Console.Write(entry.Key);
- Console.Write(" : ");
- var indices = entry.Value;
- for (int index = 0; index < indices.Count; ++index)
- {
- Console.Write(indices[index]);
- if (index != (indices.Count - 1))
- {
- Console.Write(", ");
- }
- }
- Console.Write("; ");
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д