C# Enum.GetValues()方法: 获取枚举类型的所有值

  • Post category:C#

Enum.GetValues()的作用与使用方法

在C#中,枚举类型是一种非常常见的数据类型,它允许我们定义一组命名的常量,枚举类型中的值可以是整数、浮点数、字符串等数据类型。而在某些情况下,我们需要获取一个枚举类型的所有可能值,这个时候就可以使用Enum.GetValues()方法。

Enum.GetValues()方法返回一个包含指定枚举类型中所有可能值的数组。方法的签名如下所示:

public static Array GetValues(Type enumType);

其中,enumType参数指定需要获取值的枚举类型。

以下是Enum.GetValues()方法的使用示例:

enum Colors { Red, Green, Blue };
Array colorsArray = Enum.GetValues(typeof(Colors));
foreach (Colors color in colorsArray)
{
    Console.WriteLine(color);
}

在该示例中,我们定义一个枚举类型Colors,其中包含三个常量。接着,我们使用Enum.GetValues()方法获得Colors类型的所有可能值,并将它们输出到控制台上。

实例1:枚举类型转换为集合类型

有时候我们需要将枚举类型转换为集合类型,比如我们想在下拉框中显示所有可能的颜色选项,这个时候我们可以使用Enum.GetValues()方法将枚举类型转换为集合类型,然后再将集合类型绑定到下拉框上。

private void BindColorDropdown()
{
    ddlColors.DataSource = Enum.GetValues(typeof(Colors));
    ddlColors.DataBind();
}

在该示例中,我们定义了一个私有方法BindColorDropdown(),它使用Enum.GetValues()方法获得Colors类型的所有可能值,并将它们绑定到名为ddlColors的下拉框上。

实例2:枚举类型中包含多个常量

当枚举类型中有多个常量时,Enum.GetValues()方法将所有常量都放入数组中返回,包括根据数字自动分配的默认常量。

enum Planets
{
    Mercury = 1,
    Venus = 2,
    Earth = 3,
    Mars = 4,
    Jupiter = 5
};
Array planetsArray = Enum.GetValues(typeof(Planets));
foreach (Planets planet in planetsArray)
{
    Console.WriteLine(planet);
}

在该示例中,我们定义一个枚举类型Planets,其中分别分配了整型值1-5。接着,我们使用Enum.GetValues()方法获得Planets类型的所有可能值,并将它们输出到控制台上,输出结果包括默认值Earth。