MENU

【C#入門】enumをforeachで簡単に列挙する方法

C#でプログラミングを行う際、enum(列挙型)の各要素を順番に処理したいことがあります。そんなとき、foreachループを使用すると簡単かつ効率的に処理できます。この記事では、C#におけるenumとforeachの組み合わせ方について、初心者の方にも分かりやすく解説していきます。

目次

enumとは

まず、enumについて簡単に説明しましょう。enumは、名前付きの定数のセットを表現するためのデータ型です。関連する値のグループを定義する際に非常に便利で、コードの可読性を高めてくれます。

以下は、方角を表すenumの例です:

enum Direction
{
    North,
    South,
    East,
    West
}

enumとforeachを組み合わせる

enumの各要素を順番に処理するには、Enum.GetValuesメソッドとforeachループを組み合わせます。以下に基本的な使い方を示します:

foreach (Direction dir in Enum.GetValues(typeof(Direction)))
{
    Console.WriteLine(dir);
}

このコードを実行すると、次のような出力が得られます:

North
South
East
West

より実践的な例

実際のプログラミングでは、単に値を表示するだけでなく、各enum値に対して何らかの処理を行うことが多いでしょう。以下に、より実践的な例を示します:

enum DayOfWeek
{
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
}

class Program
{
    static void Main(string[] args)
    {
        foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
        {
            string dayType = (day == DayOfWeek.Saturday || day == DayOfWeek.Sunday) ? "休日" : "平日";
            Console.WriteLine($"{day}は{dayType}です。");
        }
    }
}

このプログラムを実行すると、次のような出力が得られます:

Sundayは休日です。
Mondayは平日です。
Tuesdayは平日です。
Wednesdayは平日です。
Thursdayは平日です。
Fridayは平日です。
Saturdayは休日です。

C# 7.3以降での簡略化

C# 7.3以降では、Enum.GetValuesメソッドの型引数を省略できるようになりました。これにより、コードがより簡潔になります:

foreach (DayOfWeek day in Enum.GetValues<DayOfWeek>())
{
    Console.WriteLine(day);
}

この方法を使用すると、コードがより読みやすくなり、タイプミスのリスクも減ります。

enumとforeachの組み合わせは、設定値の処理、データの検証、ユーザーインターフェースの生成など、様々な場面で活用できます。この記事で紹介した方法を使いこなすことで、より効率的で読みやすいC#プログラムを書くことができるでしょう。

enumに関する関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次