C#生成下一个字母数字字符串序列

C#生成下一个字母数字字符串序列,c#,string,C#,String,我想在C#windows应用程序中生成字母数字字符串的下一个序列。检查maxnumber并生成下一个序列 例如 A10100001 => A10100002 => A10100003 => A10100004 ...... A10100999 => A10101001 ABC000001 => ABC000002 => ABC000003 => ABC000004 ...... ABC000999 => ABC001001 请帮助我,我

我想在C#windows应用程序中生成字母数字字符串的
下一个
序列。检查
max
number并生成下一个序列

例如

  A10100001 => A10100002 => A10100003 => A10100004 ...... A10100999 => A10101001

  ABC000001 => ABC000002 => ABC000003 => ABC000004 ...... ABC000999 => ABC001001
请帮助我,我是编程新手…

尝试使用正则表达式提取最后一个数字(我们必须递增):

Regex.Replace
更简洁但可读性较差的版本:

测试:

如果您有一系列具有相同模式的项目,您可以使用Linq:

  • 查找字符串中的第一个数字
  • 分开
  • 将第二部分解析为整数
  • 增量
  • 连接

  • 请说明您在“AABC001Z99”中尝试了哪些内容,哪些内容不起作用。我本来希望是“AABC002A00”,但得到了意外的“AABC001Z100”:(有帮助吗?在我的代码中,我只增加了最后一个数字(99)(因此我们有100)。您可能希望将1添加到36个基数(0..9A..Z)中,这是一个不同的问题
    private static string Next(string value) {
      string number = Regex.Match(value, "[0-9]+$").Value;
    
      return value.Substring(0, value.Length - number.Length) + 
             (long.Parse(number) + 1).ToString().PadLeft(number.Length, '0');
    }
    
    private static string Next(string value) {
      return Regex.Replace(value, "[0-9]+$", 
        match => (long.Parse(match.Value) + 1).ToString($"D{match.Length}"));
    }
    
    // "abc0046"
    Console.Write(Next("abc0045"));
    // "abc0045xyz124" (please, notice, that it's the last 123 which is incremented)
    Console.Write(Next("abc0045xyz123"));
    
     string[] items = new string[] { "ABC001", "ABC105", "ABC024" };  
    
     // "ABC106"
     Console.Write(Next(items.Max()));