枚举处理类
public class EnumHelper { public static T GetEnumByDescription<T>(string description) { if (!string.IsNullOrEmpty(description)) { Type enumType = typeof(T); EnumItemCollection enumItems = GetEnumItems(enumType); foreach (EnumItem item in enumItems) { if (item.Description.ToString().ToLower() == description.Trim().ToLower()) return (T) Enum.ToObject(typeof(T), item.Value); } } return default(T); } public static T GetEnumByKey<T>(string key) { return GetEnumByKey<T>(key, default(T)); } public static T GetEnumByKey<T>(string key, T defaultValue) { T local = defaultValue; EnumItem enumItem = null; try { Type enumType = typeof(T); EnumItemsCache.Get(enumType).TryGet(key, out enumItem); if (enumItem != null) local = (T) Enum.ToObject(enumType, enumItem.Value); } catch { local = defaultValue; } return local; } public static T GetEnumByValue<T>(int value) { return GetEnumByValue<T>(value, default(T)); } public static T GetEnumByValue<T>(string value) { return GetEnumByValue<T>(value, default(T)); } public static T GetEnumByValue<T>(int value, T defaultValue) { T local = defaultValue; try { EnumItemCollection enumItems = GetEnumItems(typeof(T)); foreach (EnumItem item in enumItems) { if (item.Value == value) local = (T) Enum.ToObject(typeof(T), item.Value); } } catch { local = defaultValue; } return local; } public static T GetEnumByValue<T>(string value, T defaultValue) { T local = defaultValue; try { EnumItemCollection enumItems = GetEnumItems(typeof(T)); foreach (EnumItem item in enumItems) { if (item.Value.ToString() == value) local = (T) Enum.ToObject(typeof(T), item.Value); } } catch { local = defaultValue; } return local; } public static string GetEnumDescription(Enum enumField) { return GetEnumItem(enumField).Description; } public static EnumItem GetEnumItem<T>(T enumField) { return GetEnumItems(typeof(T))[enumField.ToString()]; } public static EnumItem GetEnumItem(Enum enumField) { return GetEnumItems(enumField.GetType())[enumField.ToString()]; } public static EnumItemCollection GetEnumItems(Type enumType) { return EnumItemsCache.Get(enumType); } public static T GetEnumObject<T>(string text) { return (T) Enum.Parse(typeof(T), text, true); } }
作者:Bober Song
出处:http://bober.cnblogs.com/
CARE健康网: http://www.aicareyou.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://bober.cnblogs.com/
CARE健康网: http://www.aicareyou.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。