Поиск дублей в большой строке с разделителями в List - C#

Узнай цену своей работы

Формулировка задачи:

Есть текстовый файл следующей структуры:
Листинг программы
  1. "SOMETEXT";"ID_NUMBER";"SOMETEXT";
Пример:
Листинг программы
  1. "РСЧ 111222333444555666 г.Москва";"151060001";"ТТТТРРРМММННН";
  2. "РСЧ 111222333444555666 г.Москва";"151060002";"ТТТТРРРМММННН";
  3. "РСЧ 111222333444555666 г.Москва";"151060003";"ТТТТРРРМММННН";
  4. "РСЧ 111222333444555666 г.Москва";"151060003";"ТТТТРРРМММННН";
Заполняю List<string> таким образом:
Листинг программы
  1. List<string> myCollection = new List<string>();
  2. while ((line = file.ReadLine()) != null)
  3. {
  4. if (line != "")
  5. {
  6. myCollection.Add(line);
  7. }
  8. }
  9. file.Close();
Т.о. myCollection содержит:
Листинг программы
  1. [0]"РСЧ 111222333444555666 г.Москва";"151060001";"ТТТТРРРМММННН";
  2. [1]"РСЧ 111222333444555666 г.Москва";"151060002";"ТТТТРРРМММННН";
  3. [2]"РСЧ 111222333444555666 г.Москва";"151060003";"ТТТТРРРМММННН";
  4. [3]"РСЧ 111222333444555666 г.Москва";"151060003";"ТТТТРРРМММННН";
Как произвести поиск дубликатов в поле

ID_NUMBER

в

List<string>

и соответствующее их удаление? Знаю как найти что-то конкретное:
Листинг программы
  1. newList = myCollection.FindAll(s => s.Contains("г.Москва"));
Но как найти именно дубли ID_NUMBER не додумался.

Решение задачи: «Поиск дублей в большой строке с разделителями в List»

textual
Листинг программы
  1.     class IdComparer : IEqualityComparer<string>
  2.     {
  3.         private string ExtractId(string s)
  4.         {
  5.             return s.Split(';')[1].Trim();
  6.         }
  7.         public bool Equals(string x, string y)
  8.         {
  9.             return ExtractId(x) == ExtractId(y);
  10.         }
  11.  
  12.         public int GetHashCode(string obj)
  13.         {
  14.             return ExtractId(obj).GetHashCode();
  15.         }
  16.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.417 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы