c#枚舉怎么轉(zhuǎn)換成字符串

c#
小億
486
2024-01-12 15:46:49
欄目: 編程語言

在C#中,可以使用ToString()方法將枚舉轉(zhuǎn)換為字符串。以下是一個(gè)示例:

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()方法將每個(gè)枚舉成員轉(zhuǎn)換為字符串。以下是一個(gè)示例:

enum Color
{
    [Description("紅色")]
    Red,
    [Description("藍(lán)色")]
    Blue,
    [Description("綠色")]
    Green
}

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

Console.WriteLine(colorString); // 輸出 "藍(lán)色"

// 獲取枚舉成員的描述
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();
}

在上面的示例中,我們使用了一個(gè)DescriptionAttribute特性來為每個(gè)枚舉成員添加了一個(gè)描述。然后,通過反射獲取枚舉成員的描述值。

0