31. maj 2005 - 13:00
Der er
8 kommentarer og 1 løsning
Antallet af værdier i en enum
Hej Er det muligt at få antallet af værdier i en enum? Ex. public enum MY_ENUM { EN, EN_OG_EN_HALV, TO } Hvordan finder jeg ud af, at der er 3 værdier i MY_ENUM dynamisk? Hvis jeg eksempelvis vil gøre følgende: object[] objArr = new object[antal af enum værdier];
Annonceindlæg fra Jysk IT
Sikkerhed skal være en del af driften
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
Den første virkede fint - smid et svar :) Den næste duer ikke, da jeg ikke vil ændre i koden, der laver obj[] bare fordi jeg tilføjer en enum værdi. Vi kan jo ikke have, at en kollega tilføjer en enum værdi og så virker programmet ikke. Elsker vedligeholdelsesfri kode ;)
Husk at fortæl dinr kollegaer at de ikke må: public enum MY_ENUM { EN, EN_OG_EN_HALV, TO, TRE = 77 }
Virker fint - her er lidt kode til den interesserede: using System; namespace Test.EnumTest { public enum MY_ENUM { EN, EN_OG_EN_HALV, TO, TRE = 77 } class EnumTest { [STAThread] static void Main(string[] args) { try { int enumLength = Enum.GetNames(typeof(MY_ENUM)).Length; object[] objArr = new object[enumLength]; Console.WriteLine("Arr length: "+objArr.Length+"\n"); for(int i = 0; i < enumLength; i++) { objArr[i] = i; Console.WriteLine("Arr["+i+"] = "+objArr[i]); }//for Console.WriteLine("\nArr[TRE] = "+objArr[Get_MY_ENUM_Index(MY_ENUM.TRE)]); }//try catch(Exception e) { Console.WriteLine(e.Message); }//catch Console.WriteLine("\nPress return to close..."); Console.ReadLine(); } static int Get_MY_ENUM_Index(MY_ENUM enumValue) { string enumString = enumValue.ToString(); string[] enumStringList = Enum.GetNames(typeof(MY_ENUM)); for(int i = 0; i < enumStringList.Length; i++) if(enumStringList[i] == enumString) return i; return -1; } } }