/// <summary> Получите имя enum, исходя из значения enum /// </summary> <typeparam name="T"></typeparam> <param name="ключ"></param> /// <returns></returns> публичная статическая строка GetEnumNameByKey<T>(int key) { string nameStr = строка. Пусто; var type = typeof(T); nameStr = Enum.GetName(type, key); вернуть имяStr; }
/// <summary> Получите имя enum, исходя из значения enum /// </summary> <typeparam name="T"></typeparam> <param name="t"></param> /// <returns></returns> публичная статическая строка GetEnumNameByKey<T>(T t) { string nameStr = строка. Пусто; var type = typeof(T); nameStr = Enum.GetName(type, t); вернуть имяStr; }
/// <summary> Строки преобразуются в типы энумов /// </summary> <typeparam name="T"></typeparam> <param name="str"></param> <param name="t"></param> /// <returns></returns> private static bool StringConvertToEnum <T>(string str, out T t), где T : new() { var obj = ложно; t = новый T(); Попробуй { t = (T)Enum.Parse(typeof(T), str); obj = истинно; } catch (исключение, например) { obj = ложно; }
Return obj; }
/// <summary> Соберите коллекцию имён энумов /// </summary> <typeparam name="T"></typeparam> /// <returns></returns> публичная статическая строка[] GetNamesArr<T>() { return Enum.GetNames(typeof(T)); }
/// <summary> Преобразование enums в коллекции словарей /// </summary> <typeparam name="T"> перечислять типы</typeparam> /// <returns></returns> публичный статический словарь<строка, int> <T>GetEnumDic() {
Словарь<строка, int> resultList = новый словарь<строка, int>(); тип = typeof(T); var strList = GetNamesArr<T>(). ToList(); foreach (string key в strList) { string val = Enum.Format(type, Enum.Parse(type, key), «d»); resultList.Add(ключ, int. Parse(val)); } return resultList; }
/// <summary> Получите описание параметров /// </summary> <typeparam name="T"></typeparam> <param name="t"></param> /// <returns></returns> публичная статическая строка <T>GetDescriptionByKey(T t) { var type = t.GetType(); FieldInfo fieldInfo = тип. GetField(GetEnumNameByKey<T>(t)); DescriptionAttribute attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute), false) как DescriptionAttribute; var Описание = атрибут. Описание; Описание возврата; }
|