📜  循环遍历 C# 中的所有枚举值(1)

📅  最后修改于: 2023-12-03 15:09:52.312000             🧑  作者: Mango

循环遍历 C# 中的所有枚举值

在 C# 中,枚举(Enum)是一种常量整数值的类型,它们有助于使代码更易于理解和维护。有时我们需要循环遍历一个枚举中的所有值,以便做一些操作。本文将介绍如何在 C# 中循环遍历枚举中的所有值。

枚举类型定义

假设我们有一个名为 Colors 的枚举类型,它包含了红、绿、蓝三种颜色:

enum Colors
{
    Red,
    Green,
    Blue
}
遍历枚举元素

我们可以使用 System.Enum 类的 GetValues 方法来获取枚举中的所有值,然后使用 foreach 循环遍历它们:

foreach (Colors color in Enum.GetValues(typeof(Colors)))
{
    Console.WriteLine(color);
}

这将输出:

Red
Green
Blue

我们也可以使用 Array 类的 ForEach 方法进行遍历:

Array.ForEach(Enum.GetValues(typeof(Colors)), color => Console.WriteLine(color));
得到枚举元素的名称和值

如果我们需要得到枚举元素的名称和值,可以使用 System.Enum 类的静态方法 GetNameGetValue ,例如:

foreach (Colors color in Enum.GetValues(typeof(Colors)))
{
    Console.WriteLine($"{color}: {(int)color}");
}

这将输出:

Red: 0
Green: 1
Blue: 2
对枚举元素进行过滤

如果我们需要对枚举元素进行过滤,只选择符合条件的元素进行操作,可以使用 System.Linq 命名空间中的扩展方法 Where 进行过滤,例如:

foreach (Colors color in Enum.GetValues(typeof(Colors)).Cast<Colors>().Where(c => c != Colors.Blue))
{
    Console.WriteLine(color);
}

这将输出:

Red
Green
结论

我们可以使用 Enum.GetValues 方法遍历 C# 中的所有枚举值,并使用 GetNameGetValue 方法得到枚举元素的名称和值。我们还可以使用 Where 方法对枚举元素进行过滤,以便只对符合条件的元素进行操作。