我正在使用c# (使用Visual的.Net4),并试图根据程序中现有的字符串,找出向输入的字符串附加增量数字的算法。做得不太好四处寻找答案。
我有一个List<string>。一个例子就是
{"MyItem (2)", "MyItem", "Other thing", "string here", "MyItem (1)"}因此,假设用户想要向这个列表中添加另一个字符串,他们选择了"MyItem“作为要添加的字符串。因此,给定输入和现有列表,该算法将返回"MyItem (3)“作为要添加的新字符串。
它的功能与Windows资源管理器中的相同,即不断添加新文件夹(“新建文件夹(1)”、“新文件夹(2)”和“打开”)。
我正在尝试循环遍历列表,找出下一个逻辑数字应该是什么,但我被卡住了(代码变得越来越大)。有人知道一种优雅的方法吗?(我对Regex不太在行,所以也许这就是我想要的)
发布于 2014-03-27 21:56:11
获取input并搜索它,如果它存在于列表中,则获取计数并连接输入字符串和count +1,否则只需将输入添加到列表中:
var input = Console.ReadLine(); // just for example
if(list.Any(x => x == input))
{
var count = list.Count(x => x == input);
list.Add(string.Format("{0} ({1})", input, count+1);
}
else list.Add(input);https://stackoverflow.com/questions/22699977
复制相似问题