在处理 C# 中的 HTML 表单和枚举时,可能需要将字符串值转换为其对应的枚举值。以下是一些实现此任务的方法:
在 .NET Core 和 .NET Framework 4.0 及更高版本中,可以使用通用的解析方法:
bool statusSuccess = Enum.TryParse("Active", out StatusEnum myStatus);
如果您无法访问最新的 .NET 版本,您可以创建一个简化的解析例程:
public static T ParseEnum<T>(string value) { return (T)Enum.Parse(typeof(T), value, true); } StatusEnum myStatus = EnumUtil.ParseEnum<StatusEnum>("Active"); // 或 StatusEnum myStatus = "Active".ToEnum<StatusEnum>();
如果字符串可能不是有效的枚举值,您可以在解析方法中提供一个默认值:
public static T ToEnum<T>(this string value, T defaultValue) { if (value == null || value == "") return defaultValue; T result; return Enum.TryParse<T>(value, true, out result) ? result : defaultValue; } StatusEnum myStatus = "Active".ToEnum(StatusEnum.None);
请记住,在修改像字符串类这样的核心类时,谨慎使用扩展方法,因为它会影响该类的所有实例,而不管其上下文如何。
以上是如何将字符串解析为C#中的枚举?的详细内容。更多信息请关注PHP中文网其他相关文章!