C#におけるEnumの列挙方法: 他のアプローチ
C#におけるEnumの列挙方法
Enumは、定数のグループを表すデータ型です。C#では、Enumの各メンバーを列挙する方法がいくつかあります。
foreachループを使用する
最も一般的な方法は、foreach
ループを使用することです。これは、Enumの各メンバーを順番に処理するのに便利です。
``csharp public enum Color { Red, Green, Blue }
void Main() { foreach (Color color in Enum.GetValues(typeof(Color))) { Console.WriteLine(color); } } </code>
出力:
Red
Green
Blue
Enum.GetValues
メソッドを使用してEnumの値を取得し、その値をfor
ループで繰り返し処理することもできます。
``csharp void Main() { Color[] colors = (Color[])Enum.GetValues(typeof(Color)); for (int i = 0; i < colors.Length; i++) { Console.WriteLine(colors[i]); } } </code>
Red
Green
Blue
switch文を使用する
Enumの各メンバーを個別に処理する必要がある場合は、switch
文を使用できます。
``csharp void Main() { Color color = Color.Blue;
switch (color)
{
case Color.Red:
Console.WriteLine("赤");
break;
case Color.Green:
Console.WriteLine("緑");
break;
case Color.Blue:
Console.WriteLine("青");
break;
defau lt:
Console.WriteLine("無効な色");
break;
}
} </code>
青
Enum.IsDefinedメソッドを使用する
Enum.IsDefined
メソッドを使用して、指定された値がEnumのメンバーであるかどうかを確認できます。
``csharp void Main() { int value = 3;
if (Enum.IsDefined(typeof(Color), value))
{
Console.WriteLine("有効な色");
}
else
{
Console.WriteLine("無効な色");
}
有効な色
public enum Color
{
Red,
Green,
Blue
}
void Main()
{
foreach (Color color in Enum.GetValues(typeof(Color)))
{
Console.WriteLine(color);
}
}
このコードでは、Enum.GetValues
メソッドを使用して、Color
型のすべての値を取得し、foreach
ループを使用してそれぞれの値を処理しています。出力は次のようになります。
Red
Green
Blue
void Main()
{
Color[] colors = (Color[])Enum.GetValues(typeof(Color));
for (int i = 0; i < colors.Length; i++)
{
Console.WriteLine(colors[i]);
}
}
Red
Green
Blue
void Main()
{
Color color = Color.Blue;
switch (color)
{
case Color.Red:
Console.WriteLine("赤");
break;
case Color.Green:
Console.WriteLine("緑");
break;
case Color.Blue:
Console.WriteLine("青");
break;
defau lt:
Console.WriteLine("無効な色");
break;
}
}
このコードでは、switch
文を使用して、特定のEnum値に対して処理を実行しています。出力は次のようになります。
青
void Main()
{
int value = 3;
if (Enum.IsDefined(typeof(Color), value))
{
Console.WriteLine("有効な色");
}
else
{
Console.WriteLine("無効な色");
}
}
このコードでは、Enum.IsDefined
メソッドを使用して、指定された値がEnumのメンバーであるかどうかを確認しています。出力は次のようになります。
有効な色
C#におけるEnumの列挙方法: 他のアプローチ
Enumは、定数のグループを表すデータ型です。C#では、Enumの各メンバーを列挙する方法がいくつかあります。以下に、前述の方法に加えて、他のアプローチも紹介します。
Enum.GetNamesメソッドを使用する
Enum.GetNames
メソッドを使用して、Enumの各メンバーの名前を取得することができます。
void Main()
{
string[] names = Enum.GetNames(typeof(Color));
foreach (string name in names)
{
Console.WriteLine(name);
}
}
Red
Green
Blue
Enum.GetValuesメソッドと拡張メソッドを使用する
public static class EnumExtensions
{
public static IEnumerable<T> GetValues<T>()
{
return Enum.GetValues(typeof(T)).Cast<T>();
}
}
void Main()
{
foreach (Color color in Color.GetValues())
{
Console.WriteLine(color);
}
}
Red
Green
Blue
LINQを使用する
LINQを使用して、Enumのメンバーをフィルタリング、投影、またはソートすることができます。
void Main()
{
var filteredColors = Enum.GetValues(typeof(Color)).Cast<Color>().Where(c => c > Color.Red);
foreach (Color color in filteredColors)
{
Console.WriteLine(color);
}
}
Green
Blue
c# .net loops