Tenho um enum do qual gostaria de exibir todos os valores possíveis. Existe uma maneira de obter uma matriz ou lista de todos os valores possíveis do enum em vez de criar manualmente essa lista? por exemplo, se eu tiver um enum:
public enum Enumnum { TypeA, TypeB, TypeC, TypeD }
como eu seria capaz de obter um List<Enumnum>
que contém { TypeA, TypeB, TypeC, TypeD }
?
Respostas:
Isso fornece uma matriz simples dos valores enum usando
Enum.GetValues
:E isso dá a você uma lista genérica:
fonte
Enumnum.GetValues()
eEnumnum.GetNames()
não existe.var valuesAsArray = (Enumnum[])Enum.GetValues(typeof(Enumnum));
.Enum.GetValues(typeof(Enumnum)).Cast<ActualType>().ToList();
ActualType
significar? Para um enum, seriaEnumnum
no exemplo do OP, ou poderia ser o tipo subjacente (geralmenteint
). Você tem mais alguma coisa em mente?Experimente este código:
Isso retorna um
string[]
com todos os nomes de enum do enum escolhido.fonte
retorna uma matriz dos valores no Enum.
fonte
Você pode querer fazer assim:
Todos os valores int disso
enum
são11,22,33,44
.Você pode obter esses valores desta forma:
string.Join(",", enumsValues)
é11,22,33,44
.fonte
Algo um pouco diferente:
fonte
com isso:
e você pode acessar a matriz de valores assim:
fonte
Você pode usar
Isso retorna um array!
fonte
Se você preferir uma forma mais genérica, aqui está. Você pode adicionar mais conversores de acordo com sua necessidade.
Exemplos de implementações:
fonte
você também pode usar
para obter todos os elementos em enum como formato json.
fonte
O OP perguntou: How to get a array de todos os
enum
valores em C #?E se você quiser obter uma matriz de
enum
valores selecionados em C #?Seu enum
Se você deseja apenas selecionar
Sunday
de seuEnum
.Os créditos vão para tl com conhecimento.
Referências:
1
2
A esperança ajuda alguém.
fonte