using System; using System.Collections.Generic; using System.Linq; namespace JiaZhiQuan.Common.Utils { public class EnumUtils { /// /// 根据指定的输入枚举类型,对字符串进行解析,大小写敏感可指定(默认不敏感)。 /// 如果转换失败,则返回默认值,如果不是枚举型,则扔出异常。 /// 用法示例:WorkdayType wt = ParseEnum("workday"); /// /// 数据类型。必需为枚举型,如果不是则扔出异常。 /// 输入字符串。 /// 是否大小写敏感,默认值为false。 /// public static T ParseEnum(string value, bool caseSensitive = false) where T : Enum { T t = default; try { foreach (T item in Enum.GetValues(typeof(T))) { bool b1 = item.ToString() == value; // 大小写敏感 bool b2 = item.ToString().ToLower() == value.ToLower(); // 大小写不敏感 if (caseSensitive ? b1 : b2) { t = item; break; } } t = (T)Enum.Parse(typeof(T), value); } catch { } return t; } } }