Pertanyaan Menghasilkan array huruf dalam alfabet


Apakah ada cara mudah untuk menghasilkan array yang berisi huruf-huruf alfabet dalam C #? Tidak terlalu sulit melakukannya dengan tangan, tetapi saya bertanya-tanya apakah ada cara yang dibangun untuk melakukan ini.


75
2017-11-24 15:25


asal


Jawaban:


Saya tidak berpikir ada yang dibangun di jalan, tapi saya pikir yang paling mudah adalah

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

170
2017-11-24 15:29



C # 3.0:

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

ya itu berhasil bahkan jika satu-satunya kelebihan Enumerable.Range menerima parameter int ;-)


86
2017-11-24 15:39



for (char letter = 'A'; letter <= 'Z'; letter++)
{
     Debug.WriteLine(letter);
}

42
2017-08-11 04:50



char[] alphabet = Enumerable.Range('A', 26).Select(x => (char)x).ToArray();

27
2018-02-14 02:56



Saya menulis ini untuk mendapatkan kode kolom excel MS (A, B, C, ..., Z, AA, AB, ..., ZZ, AAA, AAB, ...) berdasarkan indeks berbasis 1. (Tentu saja, beralih ke nol berbasis hanya meninggalkan column--; di awal.)

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

17
2018-03-11 10:43



Dengan asumsi Anda maksud huruf abjad Inggris ...

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

13
2017-11-24 15:36



Anda dapat melakukan sesuatu seperti ini, berdasarkan nilai ascii karakter:

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
}

(Lihat tabel sini.) Anda hanya mentransmisikan dari nilai int karakter ke nilai karakter - tetapi, itu hanya berfungsi untuk karakter ascii yang bukan bahasa yang berbeda.

EDIT: Seperti yang disarankan oleh Mehrdad dalam komentar untuk solusi serupa, lebih baik untuk melakukan ini:

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

Ini mentransmisikan karakter A ke nilai int dan kemudian menambah berdasarkan ini, jadi itu tidak hardcoded.


5
2017-11-24 15:35



Perhatikan juga, string memiliki operator [] yang mengembalikan Char, dan merupakan IEnumerable<char>, jadi untuk sebagian besar tujuan, Anda dapat menggunakan string sebagai char []. Karenanya:

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

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

5
2017-11-24 16:49



Terkejut belum ada yang menyarankan solusi hasil:

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

Contoh:

foreach (var c in Alphabet())
{
    Console.Write(c);
}

2
2017-12-18 11:15