Добавить значение счетчика для дублирования строковых значений по мере их обнаружения - PullRequest
0 голосов
/ 27 апреля 2020

Итак, у меня есть список строк, скажем, это выглядит так:

var reportTitleList = new List<string>(){ "January Cost Report", "January Cost Report", "January Cost Report", "February Cost Report", "March Cost Report", "April Cost Report", "April Cost Report", "May Cost Report" }

Мне нужно иметь возможность добавлять (2), (3) et c к каждой строке время дубликат найден. Но проблема у меня заключается в том, что, как только я добавляю число к первому найденному дубликату, он больше не будет дубликатом, поэтому поиск LINQ по строковому значению не увеличит это значение, и счетчик будет сброшен. , Как и, например, отчет о затратах за январь (2) не будет считаться дубликатом отчета о затратах за январь из-за (2).

Я думал об использовании регулярного выражения для этого, но я не знаком с тем, как использовать динамическую c строку с ними или, если это выполнимо.

1 Ответ

1 голос
/ 27 апреля 2020

Попробуйте:

    var dups = reportTitleList.GroupBy(_ => _);
    var list = new List<string>();

    foreach (var element in dups)
    {
        var items = element.Select((_,index) => _+$" ({index+1})" );
        list.AddRange(items);
    }

Вывод:

Отчет о затратах в январе (1) Отчет о затратах в январе (2) Отчет о затратах в январе (3) Отчет о затратах в феврале (1) Стоимость в марте Отчет (1) Апрельский отчет (1) Апрельский отчет (2) Майский отчет (1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...