枚举从 'a' 到 'zzz' 的字母表

enumerating over the alphabet from 'a' to 'zzz'

我想知道是否可以枚举从 'a' 到 'zzz' 的字母表?

例如,我有一个最多包含 1000 个洞穴的洞穴系统,我想为每个洞穴分配一个 char 值。

1 = a, 2 = b, 3 = c ... 27 = aa etc

如果可能的话,最好的方法是什么?

它就像 excel 列的转换器: How to convert a column number (eg. 127) into an excel column (eg. AA)

private string GetExcelColumnName(int columnNumber)
{
    int dividend = columnNumber;
    string columnName = String.Empty;
    int modulo;

    while (dividend > 0)
    {
        modulo = (dividend - 1) % 26;
        columnName = Convert.ToChar(65 + modulo).ToString() + columnName;
        dividend = (int)((dividend - modulo) / 26);
    } 

    return columnName;
}
void Main()
{
    foreach (string word in EnumerateCaveNames())
        Console.WriteLine(word);
}

IEnumerable<string> EnumerateCaveNames()
{
    for (int i = 0; i < 26 * 26 * 26; ++i)
    {
        yield return BuildCaveName(i);
    }
}

string BuildCaveName(int caveNum)
{
    string name = (GetLetterFromNumber(caveNum / (26 * 26)) + GetLetterFromNumber((caveNum / 26) % 26) + GetLetterFromNumber(caveNum % 26)).TrimStart('a');
    if (name == "")
        name = "a";
    return name;
}

string GetLetterFromNumber(int num)
{
    return "" + (char)('a' + num);
}