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

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

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

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

ID_NUMBER

в

List<string>

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

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

textual
Листинг программы
    class IdComparer : IEqualityComparer<string>
    {
        private string ExtractId(string s)
        {
            return s.Split(';')[1].Trim();
        }
        public bool Equals(string x, string y)
        {
            return ExtractId(x) == ExtractId(y);
        }
 
        public int GetHashCode(string obj)
        {
            return ExtractId(obj).GetHashCode();
        }
    }

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


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

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

12   голосов , оценка 4.417 из 5
Похожие ответы