using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Reflection; public static class vInventoryDisplayFormat { static readonly List ItemTypeFormats = new List(); static readonly List ItemAttributeFormats = new List(); /// /// Get Item type string format using Description in value /// /// target Item type /// public static string DisplayFormat(this Invector.vItemManager.vItemType value) { if (ItemTypeFormats.Count == 0) { var values = System.Enum.GetValues(typeof(Invector.vItemManager.vItemType)).OfType().ToArray(); for (int i = 0; i < values.Length; i++) { Invector.vItemManager.vItemType v = values[i]; ItemTypeFormats.Add(GetDisplayFormat(v)); } } return ItemTypeFormats[(int)value]; } /// /// Get Item Attribute string format using Description in value /// /// target Item Attribute /// public static string DisplayFormat(this Invector.vItemManager.vItemAttributes value) { if (ItemAttributeFormats.Count == 0) { var values = System.Enum.GetValues(typeof(Invector.vItemManager.vItemAttributes)).OfType().ToArray(); for (int i = 0; i < values.Length; i++) { Invector.vItemManager.vItemAttributes v = values[i]; ItemAttributeFormats.Add(GetDisplayFormat(v)); } } return ItemAttributeFormats[(int)value]; } static string GetDisplayFormat(this T value) where T : System.Enum { return value .GetType() .GetMember(value.ToString()) .FirstOrDefault() ?.GetCustomAttribute() ?.Description ?? value.ToString(); } }