在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