Mamy enum z członków posiadających wartości losowych, powiedzmyNie można pobrać członków wyliczenia w kolejności, w jakiej zostały zdefiniowane!
enum MyEnum
{
enumMember1 = 100,
enumMember2 = 10,
enumMember3 = 50
}
Nie mogliśmy iterację członków enum w kolejności, w jakiej zostały zdefiniowane! Enum.GetValues
i Enum.GetNames
zarówno wewnętrznie sortować członków i daje wynik!
iteracji tablicy zwróconej przez Enum.GetNames lub Enum.GetValues i robi .ToString()
na każdym z elementów tablicy daje nam
enumMember2, enumMember3, enumMember100.
właśnie zastanawiałem się, czy istnieje jakakolwiek z podejściem skrzynki dostać członkowie enum w kolejności, w jakiej zostali stworzeni? Czy wyszukiwanie, nie dostałem dużo informacji! Dzięki!
P.S. Nie chciałbym tego robić poprzez niestandardowy atrybut! I podczas pisania tego, miałem wątpliwość, czy IL dla enum zostanie wygenerowany po posortowaniu członków Enum, sprawdzeniu go ryt daleko!
Tak, droga odbicie działa! Życzyć sobie, aby Enum.GetNames zachował kolejność, w której deklarowano enum! Dzięki! – ioWint
http://stackoverflow.com/questions/8067493/if-getfields-doesnt-guarantee-order-how-does-layoutkind-sequential-work Odsyłam do tego łącza, ponieważ GetFields (..) nie zawsze może powrócić prawidłowa kolejność. post ma inne rozwiązanie – Mike
Uwagi do metody "Enum.GetNames' [http://msdn.microsoft.com/en-us/library/system.enum.getnames.aspx]: Elementy tablicy wartości zwracanych są sortowane według binarne wartości wyliczonych stałych (to znaczy, ich niepodpisana wielkość) –