101

C# でアルファベットの文字を含む配列を生成する簡単な方法はありますか? 手作業で行うのはそれほど難しくありませんが、これを行うための組み込みの方法があるかどうか疑問に思っていました.

4

14 に答える 14

218

組み込みの方法はないと思いますが、最も簡単なのは

  char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
于 2008-11-24T15:29:27.790 に答える
111

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 パラメータを受け入れる場合でも機能します ;-)

于 2008-11-24T15:39:08.160 に答える
59
for (char letter = 'A'; letter <= 'Z'; letter++)
{
     Debug.WriteLine(letter);
}
于 2011-08-11T04:50:28.647 に答える
45
char[] alphabet = Enumerable.Range('A', 26).Select(x => (char)x).ToArray();
于 2014-02-14T02:56:17.387 に答える
22

これは、1 から始まるインデックスに基づいて MS Excel 列コード (A、B、C、...、Z、AA、AB、...、ZZ、AAA、AAB、...) を取得するために作成しました。(もちろん、ゼロベースへの切り替えは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;
}
于 2011-03-11T10:43:18.707 に答える
14

英語のアルファベットの文字を意味すると仮定すると...

    for ( int i = 0; i < 26; i++ )
    {
        Console.WriteLine( Convert.ToChar( i + 65 ) );
    }
    Console.WriteLine( "Press any key to continue." );
    Console.ReadKey();
于 2008-11-24T15:36:08.120 に答える
8

文字のアスキー値に基づいて、次のようなことができます。

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 文字に対してのみ機能します。

編集:同様のソリューションへのコメントでMehrdadが 示唆しているように、これを行うことをお勧めします:

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

これは文字 A をその int 値にキャストし、これに基づいてインクリメントするため、ハードコードされません。

于 2008-11-24T15:35:41.477 に答える
5

誰も歩留まりの解決策を提案していないことに驚いた:

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

例:

foreach (var c in Alphabet())
{
    Console.Write(c);
}
于 2012-12-18T11:15:23.873 に答える
5

また、文字列には Char を返す operator[] が含まれていることにも注意してください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);
}
于 2008-11-24T16:49:13.387 に答える
0
char alphaStart = Char.Parse("A");
char alphaEnd = Char.Parse("Z");
for(char i = alphaStart; i <= alphaEnd; i++) {
    string anchorLetter = i.ToString();
}
于 2009-10-19T22:33:22.710 に答える
0
//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++;
    }
于 2010-07-16T11:36:42.537 に答える
0

コンソールで英語のアルファベットを取得する 4 つの方法:

public void ShowEnglishAlphabet()
{
    var firstLetter = 'a';
    var endLetter = 'z';
    for (var letter = firstLetter; letter <= endLetter; letter++)
    {
        Console.WriteLine($"{letter}-{letter.ToString().ToUpper()}");
    }
}

public void ShowEnglishAlphabetFromUnicodeTableDecNumber()
{
    var firstLetter = 97;
    var endLetter = 122;
    for (var letterNumberUnicodeTable = firstLetter; 
    letterNumberUnicodeTable <= endLetter; letterNumberUnicodeTable++)
    {
        Console.WriteLine($"{(char)letterNumberUnicodeTable}- 
        {((char)letterNumberUnicodeTable).ToString().ToUpper()}");
    }
}

public void ShowEnglishAlphabetUnicodeTableEscapeSequence()
{
    var firstLetter = '\u0061';
    var endLetter = '\u007A';
    for (var letterNumberUnicodeTable = firstLetter; 
    letterNumberUnicodeTable <= endLetter; letterNumberUnicodeTable++)
    {
        Console.WriteLine($"{letterNumberUnicodeTable}- 
        {letterNumberUnicodeTable.ToString().ToUpper()}");
    }
}   

public void ShowEnglishAlphabetUnicodeTableLinq()
{
    var alphabets = Enumerable.Range('a', 26).Select(letter => 
    ((char)letter).ToString()).ToList();
    foreach (var letter in alphabets)
    {
        Console.WriteLine($"{letter}-{letter.ToUpper()}");
    }
}
于 2019-09-28T20:42:03.687 に答える