From 67d5dbb966df4af4304b4168378c68ce83ad01b1 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期三, 10 九月 2025 13:05:50 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs | 42 ++++++++++++++++++++++++++++++++++++------ 1 files changed, 36 insertions(+), 6 deletions(-) diff --git a/FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs b/FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs index b7448be..87302ab 100644 --- a/FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs +++ b/FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs @@ -1,6 +1,7 @@ 锘縰sing System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Text; using System.Threading.Tasks; @@ -67,19 +68,48 @@ } /// <summary> + /// 鑾峰彇鎻忚堪 + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="model"></param> + /// <param name="t"></param> + /// <returns></returns> + public static string GetDescription<T>(this EnumModel<T> model, T t) + where T : struct + { + return model.Items + .Where(it => it.Enum.Equals(t)) + .Select(it => it.Description) + .FirstOrDefault(); + } + + /// <summary> /// 鑾峰彇鏋氫妇 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <param name="name"></param> /// <returns></returns> - public static T GetEnum<T>(this EnumModel<T> model, string name) - where T : struct + public static T GetEnum<T>(string name) + where T : struct, Enum { - return model.Items - .Where(it => it.Name.Equals(name, StringComparison.OrdinalIgnoreCase)) - .Select(it => it.Enum) - .FirstOrDefault(); + name = Enum.GetNames<T>().FirstOrDefault(it => it.Equals(name, StringComparison.OrdinalIgnoreCase)); + return Enum.Parse<T>(name); + } + + /// <summary> + /// 鑾峰彇鑷畾涔夌壒鎬� + /// </summary> + /// <typeparam name="TEnum"></typeparam> + /// <typeparam name="TAttribute"></typeparam> + /// <param name="enum"></param> + /// <returns></returns> + public static TAttribute GetCustomAttribute<TEnum, TAttribute>(this TEnum @enum) + where TEnum : struct + where TAttribute : Attribute + { + + return typeof(TEnum).GetMember(@enum.ToString())[0].GetCustomAttribute<TAttribute>(); } } } -- Gitblit v1.9.1