c# - 将增量数字添加到重复字符串

标签 c# regex

我正在使用 C#(使用 Visual Studio 的 .Net4)工作,我正在尝试找出一种算法,根据程序中的现有字符串将增量数字附加到输入的字符串中。没有很好地寻找答案。

我有一个List<string> 。一个例子是

{"MyItem (2)", "MyItem", "Other thing", "string here", "MyItem (1)"}

假设用户想要向此列表添加另一个字符串,并且他们选择了“MyItem”作为要添加的字符串。因此,给定输入和现有列表,算法将返回“MyItem (3)”作为要添加的新字符串。

这与 Windows 资源管理器中的功能相同,您可以在其中不断添加新文件夹(“新文件夹 (1)”、“新文件夹 (2)”等等)

我正在尝试循环遍历列表并找出下一个逻辑数字应该是什么,但我陷入了困境(并且代码变得越来越大)。有人知道这样做的优雅方法吗? (我不太擅长正则表达式,所以也许这就是我所缺少的)

最佳答案

这应该有效:

var list = new List<string>{"MyItem (2)", "MyItem", "Other thing", "string here", "MyItem (1)"}   ; 

string str = "MyItem";
string newStr = str;

int i = 0;
while(list.Contains(newStr))
{
   i++;
   newStr = string.Format("{0} ({1})",str,i);
}

// newStr = "MyItem (3)"

关于c# - 将增量数字添加到重复字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22699977/

相关文章:

regex - 如何从jmeter中的HREF属性中提取数据

c# - 使用另一个列表的内容过滤一个列表

c# - 使用 C# 将图像上传到 Imgur.com

javascript - 正则表达式

ruby - 使用正则表达式检查字符串是否以辅音开头

javascript - 正则表达式匹配并递增文件名 (n)

c# - 如何在 C# 对象中反序列化这个嵌套的 xml

c# - 无法从 JSON 响应创建 javascript 数组

c# - 如何将泛型类型导出到 COM?类型库导出器在签名中遇到泛型类型实例

regex - 使用正则表达式组匹配去掉括号