c#如何通过枚举名称(字符串)获得枚举所有值
时间: 2024-10-17 22:03:56 浏览: 30
C# 从枚举值获取对应的文本描述详解
在C#中,如果你想要通过枚举名称获取对应的枚举值,可以使用`Enum.Parse`或`Enum.TryParse`方法。这两个方法都属于System.Enum类,它们可以根据给定的字符串尝试找到相应的枚举成员。
例如,假设有一个名为`DayOfWeek`的枚举:
```csharp
public enum DayOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
```
你可以这样做来获取特定名称的枚举值:
```csharp
DayOfWeek dayByName = Enum.Parse<DayOfWeek>("Monday");
```
如果枚举名称存在,`dayByName`将包含`Monday`的枚举值;如果名称不存在,则会抛出`FormatException`。
如果你想避免异常,并检查转换是否成功,可以使用`TryParse`方法:
```csharp
if (Enum.TryParse<DayOfWeek>("Monday", out DayOfWeek day))
{
Console.WriteLine(day);
}
else
{
Console.WriteLine("Invalid day name.");
}
```
在这个例子中,如果"Monday"有效,`day`变量会被赋值,否则`day`将是默认的枚举值(对于`DayOfWeek`可能是`default(DayOfWeek)`)。
阅读全文