1. ホーム
  2. c#

アルファベットの最速列挙法

2023-07-11 17:31:50

質問

アルファベットをこのように反復処理したい。

foreach(char c in alphabet)
{
 //do something with letter
}

charsの配列が一番いいのでしょうか?(ハチャメチャな感じがします)

編集:指標は "可読性と堅牢性を保ちながら、実装するために最も少ないタイピングです"。

どのように解決するのですか?

(ASCIIなどを想定して)

for (char c = 'A'; c <= 'Z'; c++)
{
    //do something with letter 
} 

あるいは、プロバイダに分割して、イテレータを使うこともできます(国際化のサポートを考えている場合)。

public class EnglishAlphabetProvider : IAlphabetProvider
{
    public IEnumerable<char> GetAlphabet()
    {
        for (char c = 'A'; c <= 'Z'; c++)
        {
            yield return c;
        } 
    }
}

IAlphabetProvider provider = new EnglishAlphabetProvider();

foreach (char c in provider.GetAlphabet())
{
    //do something with letter 
}