当处理包含枚举值的 HTML select 标签时,需要将选定的字符串值转换为相应的枚举值。在 C# 中,首选的转换方法是 Enum.TryParse
。
Enum.TryParse("Active", out StatusEnum myStatus);
对于 .NET Core 和 .NET Framework 4.0 之前的版本,需要更长的语法:
StatusEnum myStatus = (StatusEnum)Enum.Parse(typeof(StatusEnum), "Active", true);
为了方便起见,您可以创建自定义扩展方法来简化解析过程,例如:
public static T ParseEnum<T>(string value) => (T)Enum.Parse(typeof(T), value, true);
此扩展方法允许您编写:
StatusEnum myStatus = ParseEnum<StatusEnum>("Active");
为了处理字符串值不是有效枚举值的情况,您可以向 ParseEnum
方法添加默认值:
public static T ToEnum<T>(string value, T defaultValue) { if (string.IsNullOrEmpty(value)) return defaultValue; T result; return Enum.TryParse<T>(value, true, out result) ? result : defaultValue; }
这允许您使用以下语法:
StatusEnum myStatus = "Active".ToEnum(StatusEnum.None);
以上是如何将字符串转换为C#中的枚举?的详细内容。更多信息请关注PHP中文网其他相关文章!