在C#当字符串和枚举类型的转换是很常见的功能。特此记录一下:
using System;
public enum Flowers
{
None,
Daisy= 1,
Lili = 2,
Rose = 3
}
class Conversion{
static void Main()
{
string stringvalue = "Rose";
Flowers Flower = (Flowers)Enum.Parse(typeof(Flowers), stringvalue);
//To check if we have converted successfully
if(Flower == Flowers.Rose)
{
Console.WriteLine("The Flower is Rose");
}
}
}
几种常用方式
- Enum.Parse(typeof(T), "Rose"):返回 object,需强制转换。
- Enum.TryParse("Rose", out T v):推荐,解析失败返回 false 而不抛异常。
- Enum.Parse<T>("Rose"):泛型重载,写法更简洁。
- 忽略大小写:Enum.TryParse("rose", true, out v)。