c# 怎么通过值获取枚举
时间: 2024-09-06 09:01:40 浏览: 41
在C#中,如果你想通过一个值来获取对应的枚举类型,你可以使用`Enum.Parse`方法或者`Enum.TryParse`方法来实现。这两种方法都可以将一个字符串表示的枚举名称转换成枚举类型,而`Enum.TryParse`提供了一种更加安全的方式,因为它在转换失败时不会抛出异常,而是返回一个布尔值表示是否成功。
下面是使用`Enum.Parse`和`Enum.TryParse`的示例代码:
使用`Enum.Parse`:
```csharp
using System;
public class Example
{
public static void Main()
{
string enumString = "Value2"; // 这里假设枚举值的字符串表示为"Value2"
try
{
// 将字符串解析为枚举值
Enum myEnum = Enum.Parse(typeof(MyEnum), enumString);
Console.WriteLine("The value of the enum is: " + myEnum.ToString());
}
catch (ArgumentException ex)
{
// 如果枚举名称不是有效的,则会抛出异常
Console.WriteLine("Enum value not found.");
}
}
}
// 定义一个枚举类型
public enum MyEnum
{
Value1,
Value2,
Value3
}
```
使用`Enum.TryParse`:
```csharp
using System;
public class Example
{
public static void Main()
{
string enumString = "Value2"; // 这里假设枚举值的字符串表示为"Value2"
bool success = Enum.TryParse(enumString, out Enum myEnum);
if (success)
{
Console.WriteLine("The value of the enum is: " + myEnum.ToString());
}
else
{
Console.WriteLine("Enum value not found.");
}
}
}
// 定义一个枚举类型
public enum MyEnum
{
Value1,
Value2,
Value3
}
```
在这两个例子中,如果字符串`enumString`与枚举`MyEnum`中的某个值匹配,那么该枚举值就会被返回;如果不匹配,则会输出错误信息或者返回失败标志。
阅读全文