【发布时间】:2014-12-28 10:24:08
【问题描述】:
我有这个功能,它可以工作并给出正确的结果:
<System.Runtime.CompilerServices.Extension()>
Public Function Unique(List As List(Of String)) As List(Of String)
Return List.Select(Function(x, index) x & System.Text.RegularExpressions.Regex.Replace((List.GetRange(0, index).Where(Function(y) y = x).Count + 1).ToString, "\b1\b", String.Empty)).ToList
End Function
此函数根据需要将“2”、“3”等附加到那些不唯一的项目,以使其唯一。
如何在 a) 保留在同一 linq 语句(同一行代码)中,b) 不引入循环或 c) 计算表达式两次时删除正则表达式,这在 IIF 语句中是必需的?
这不是 Getting index of duplicate items in a list in c# 的副本,因为 a) 我的列表在函数执行期间没有更改 b) 没有通过准备应用代码示例回答该问题,我正在寻找特定的修复到特定的代码行。这些答案不会解决我的问题;它们不适用于此处。
【问题讨论】:
-
您是否关心保留订单,或者您可以使用
GroupBy收集所有具有相同标识符的订单,然后为组内的每个订单添加索引? -
是的,订单很重要。这些是 csv 文件中的标题,它们必须与行值匹配。谢谢