方法之一是:
IEnumerable<string> generate(){ for (char c = 'A'; c <= 'Z'; c++) yield return new string(c, 1); for (char c = 'A'; c <= 'Z'; c++) for (char d = 'A'; d <= 'Z'; d++) yield return new string(new[] { c, d });}编辑:
实际上,您可以
long使用更复杂的代码来产生“无限”序列(以最大值为界):
string tobase26(long i){ if (i == 0) return ""; i--; return tobase26(i / 26) + (char)('A' + i % 26);}IEnumerable<string> generate(){ long n = 0; while (true) yield return tobase26(++n);}这是这样的:A,B,…,Z,AA,AB,…,ZZ,AAA,AAB等…:
foreach (var s in generate().Take(200)) Console.WriteLine(s);



