【C#】枚举操作

时间:2024-04-18 11:17:21

在C#中,可以使用ToString()方法将枚举转换为字符串。以下是一个示例:

enum Color
{
    Red,
    Blue,
    Green
}

Color color = Color.Blue;
string colorString = color.ToString();

Console.WriteLine(colorString); // 输出 "Blue"

还可以使用Enum.GetName()方法来获取枚举成员的名称:

enum Color
{
    Red,
    Blue,
    Green
}

Color color = Color.Green;
string colorString = Enum.GetName(typeof(Color), color);

Console.WriteLine(colorString); // 输出 "Green"

需要注意的是,枚举成员的名称和字符串值是不同的。如果需要获取枚举成员的字符串值,可以使用Enum.GetValues()方法遍历枚举,并使用ToString()方法将每个枚举成员转换为字符串。以下是一个示例:

enum Color
{
    [Description("红色")]
    Red,
    [Description("蓝色")]
    Blue,
    [Description("绿色")]
    Green
}

Color color = Color.Blue;
string colorString = GetEnumDescription(color);

Console.WriteLine(colorString); // 输出 "蓝色"

// 获取枚举成员的描述
public static string GetEnumDescription(Enum value)
{
    FieldInfo field = value.GetType().GetField(value.ToString());

    DescriptionAttribute attribute = field.GetCustomAttributes(typeof(DescriptionAttribute), false)
                                          .SingleOrDefault() as DescriptionAttribute;

    return attribute != null ? attribute.Description : value.ToString();
}