在C#中,如何建立从A到ZZ的数组,类似于excel对列进行排序的方式

我期待的代码,其中所述第一项是可以产生一个阵列 ,然后 ,然后 。。在 ,它将转到

,然后是 然后是 。。。一直到 。

用C#做到这一点的最佳方法是什么?

回答:

方法之一是:

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);

以上是 在C#中,如何建立从A到ZZ的数组,类似于excel对列进行排序的方式 的全部内容, 来源链接: utcz.com/qa/424623.html

回到顶部