12345678910111213141516171819202122232425262728293031323334 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace JiaZhiQuan.Common.Utils {
- public class EnumUtils {
- /// <summary>
- /// 根据指定的输入枚举类型,对字符串进行解析,大小写敏感可指定(默认不敏感)。
- /// 如果转换失败,则返回默认值,如果不是枚举型,则扔出异常。
- /// 用法示例:WorkdayType wt = ParseEnum<WorkdayType >("workday");
- /// </summary>
- /// <typeparam name="T">数据类型。必需为枚举型,如果不是则扔出异常。</typeparam>
- /// <param name="value">输入字符串。</param>
- /// <param name="caseSensitive">是否大小写敏感,默认值为false。</param>
- /// <returns></returns>
- public static T ParseEnum<T>(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;
- }
- }
- }
|