我正在使用 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/