我有一种情况,我想枚举一个字符串列表,然后检查重复项,如果有任何重复项,最后增加数字.字符串的顺序无关紧要.
例如,如果我的列表是:
- 测试
- 测试仪
- 测试仪
- 测试仪
它将改为
- 测试
- 测试仪
- 测试仪(1)
- 测试仪(2)
是否有捷径可寻?我目前的想法是做一个分组,然后找到每个组的计数,然后递归地遍历每个组并更改值 - 但确定有一个更快的方法来使用LINQ做到这一点
您可以使用该Select项目的重载索引:
List<string> resultList = list
.GroupBy(s => s)
.SelectMany(g => g
.Select((s, index) => $"{s}{(index == 0 ? "" : $" ({index})")}"))
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |