it-swarm.com.de

Generieren eines Arrays von Buchstaben im Alphabet

Gibt es eine einfache Möglichkeit, ein Array mit den Buchstaben des Alphabets in C # zu generieren? Es ist nicht allzu schwer, es von Hand zu machen, aber ich habe mich gefragt, ob es dafür einen eingebauten Weg gibt.

83
Helephant

Ich glaube nicht, dass es einen eingebauten Weg gibt, aber ich denke, der wäre der einfachste

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

C # 3.0:

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

ja es funktioniert auch wenn die einzige überladung von enumerable.range int parameter akzeptiert ;-)

98
Pop Catalin
for (char letter = 'A'; letter <= 'Z'; letter++)
{
     Debug.WriteLine(letter);
}
49
Simon
char[] alphabet = Enumerable.Range('A', 26).Select(x => (char)x).ToArray();
30
Raz Megrelidze

Ich habe dies geschrieben, um den MS Excel-Spaltencode (A, B, C, ..., Z, AA, AB, ..., ZZ, AAA, AAB, ...) basierend auf einem 1-basierten Index zu erhalten. (Natürlich lässt das Umschalten auf Null einfach das column--; am Anfang.)

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;
}
20
Nyerguds

Angenommen, Sie meinen die Buchstaben des englischen Alphabets ...

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

Sie könnten so etwas tun, basierend auf den ASCII-Werten der Zeichen:

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
}

(Siehe die Tabelle hier .) Sie wandeln nur den int-Wert des Zeichens in den Zeichenwert um - aber das funktioniert nur für ASCII-Zeichen, nicht für verschiedene Sprachen usw.

EDIT: Wie von Mehrdad im Kommentar zu einer ähnlichen Lösung vorgeschlagen, ist es besser, dies zu tun:

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

Dadurch wird das A-Zeichen auf den int-Wert umgewandelt und anschließend inkrementiert, sodass es nicht fest codiert ist.

6
xan

Beachten Sie auch, dass der String einen Operator [] hat, der ein Zeichen zurückgibt und ein IEnumerable<char>, daher können Sie für die meisten Zwecke eine Zeichenfolge als Zeichen [] verwenden. Daher:

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

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

Überrascht hat niemand eine Ertragslösung vorgeschlagen:

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

Beispiel:

foreach (var c in Alphabet())
{
    Console.Write(c);
}
3
weston
var alphabets = Enumerable.Range('A', 26).Select((num) => ((char)num).ToString()).ToList();
2
Pradeep T M
//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++;
    }
0
rjdmello
char alphaStart = Char.Parse("A");
char alphaEnd = Char.Parse("Z");
for(char i = alphaStart; i <= alphaEnd; i++) {
    string anchorLetter = i.ToString();
}
0
aa.