c# - 将计数值附加到找到的重复字符串值
问题描述
所以我有一个字符串列表,假设它看起来像:
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) 等附加到字符串中。但是我遇到的问题是,一旦我将一个数字附加到找到的第一个重复项上,那将不再是重复项,因此对字符串值进行 LINQ 搜索不会显示该值,并且计数将被丢弃. 例如,由于 (2),1 月成本报告 (2) 不会被视为 1 月成本报告的副本。
我想过使用正则表达式来做到这一点,但我不熟悉如何使用动态字符串,或者这是否可行。
解决方案
尝试这个:
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)
推荐阅读
- python - Scraper 未提取 url 链接:
- c - 确定用户输入值的数据类型
- python - 从另一个类访问实例变量
- java - 如何从可执行文件加载我的本地主机 java spring boot web 应用程序
- java - 将json字符串转换为日期对象
- google-maps - 如何添加路线图和交通图层
- c++ - 这行 else if(open_nodes_map[xdx][ydy]>m0->getPriority()) 是什么意思?
- c++ - 在 Set/Map 中使用向量作为键的 C++ 不会产生唯一答案
- mysql - 如何删除联合表与连接表之间的匹配项
- python - 如何仅在一个 Python 版本中升级 Numpy?