我想从整数索引生成连续的字母字符串,用作自动对象名称。我知道如何从int32生成base-26,需要7位数。但这不是我想要的,因为对于低指数,我仍然会得到7位数,我想从a,b,c开始得到短名称......
禁止前导零(a' s)也不是一个选项,因为从一位数到两位数的名称的转换是不规则的:
a,...,z,ba,bb,bc,...,zy,zz,baa,bab,...
就像在这段代码中一样:
public static string autoVarName(int i)
{
string result = "";
do
{
int j = i % 26;
result = (char)('a'+j) + result;
i /= 26;
}
while (i>0);
return result;
}
我想得到的与Excel生成列名的方式非常相似:
a,...,z,aa,ab,ac,...,zy,zz,aaa,aab,...
我似乎无法绕过如何做到这一点。任何搜索都提出了真正的基数为26的数字。有谁知道如何修改上面的代码来得到我想要的东西?