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;
}
}
}