有一种简单的方法来产生包含在C#的字母表中的字母的阵列?它不是太难做手工,但我不知道是否有一个内置的方式做到这一点。

有帮助吗?

解决方案

我不认为存在方式建成的,但我认为最简单的是

  char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();

其他提示

C#3.0:

char[] az = Enumerable.Range('a', 'z' - 'a' + 1).Select(i => (Char)i).ToArray();
foreach (var c in az)
{
    Console.WriteLine(c);
}

是它不工作,即使Enumerable.Range的唯一过载接受INT参数; - )

for (char letter = 'A'; letter <= 'Z'; letter++)
{
     Debug.WriteLine(letter);
}
char[] alphabet = Enumerable.Range('A', 26).Select(x => (char)x).ToArray();

我写这个获取MS Excel列代码(A,B,C,...,Z,AA,AB,...,ZZ,AAA,AAB,...)的基础上的基于1指数。 (当然,在切换到零基础简单地离开关闭column--;在开始。)

public static String getColumnNameFromIndex(int column)
{
    column--;
    String col = Convert.ToString((char)('A' + (column % 26)));
    while (column >= 26)
    {
        column = (column / 26) -1;
        col = Convert.ToString((char)('A' + (column % 26))) + col;
    }
    return col;
}

假设你的意思是英文字母表的字母...

    for ( int i = 0; i < 26; i++ )
    {
        Console.WriteLine( Convert.ToChar( i + 65 ) );
    }
    Console.WriteLine( "Press any key to continue." );
    Console.ReadKey();

您可以根据字符的ASCII值做这样的事情,:

char[26] alphabet;

for(int i = 0; i <26; i++)
{
     alphabet[i] = (char)(i+65); //65 is the offset for capital A in the ascaii table
}

(参考表此处)你只是从字符的字符值的int值铸造 - 但是,这仅适用于ASCII字符不是不同的语言等。

修改 正如迈赫达德到一个类似的解决方案的评论所说,这是更好地做到这一点:

alphabet[i] = (char)(i+(int)('A'));

此连铸的字符到它的int值和然后递增在此基础上,所以它不是硬编码。

还应该注意,该串具有操作符[]返回一个字符,并且是IEnumerable<char>,因此,对于大多数目的,则可以使用一个字符串作为一个char []。因此:

string alpha = "ABCDEFGHIJKLMNOPQRSTUVQXYZ";
for (int i =0; i < 26; ++i)
{  
     Console.WriteLine(alpha[i]);
}

foreach(char c in alpha)
{  
     Console.WriteLine(c);
}

惊讶没有人已经提出了一种屈服溶液:

public static IEnumerable<char> Alphabet()
{
    for (char letter = 'A'; letter <= 'Z'; letter++)
    {
        yield return letter;
    }
}

示例:

foreach (var c in Alphabet())
{
    Console.Write(c);
}
var alphabets = Enumerable.Range('A', 26).Select((num) => ((char)num).ToString()).ToList();
char alphaStart = Char.Parse("A");
char alphaEnd = Char.Parse("Z");
for(char i = alphaStart; i <= alphaEnd; i++) {
    string anchorLetter = i.ToString();
}
//generate a list of alphabet using csharp
//this recurcive function will return you
//a string with position of passed int
//say if pass 0 will return A ,1-B,2-C,.....,26-AA,27-AB,....,701-ZZ,702-AAA,703-AAB,...

static string CharacterIncrement(int colCount)
{
    int TempCount = 0;
    string returnCharCount = string.Empty;

    if (colCount <= 25)
    {
        TempCount = colCount;
        char CharCount = Convert.ToChar((Convert.ToInt32('A') + TempCount));
        returnCharCount += CharCount;
        return returnCharCount;
    }
    else
    {
        var rev = 0;

        while (colCount >= 26)
        {
            colCount = colCount - 26;
            rev++;
        }

        returnCharCount += CharacterIncrement(rev-1);
        returnCharCount += CharacterIncrement(colCount);
        return returnCharCount;
    }
}

//--------this loop call this function---------//
int i = 0;
while (i <>
    {
        string CharCount = string.Empty;
        CharCount = CharacterIncrement(i);

        i++;
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top