Enum Roles
Administrador = 1
Usuario = 2
Auditor = 3
Invitado = 4
End Enum
y queremos recorrer o iterar por sus elementos… cómo lo hacemos?
en realidad es nada dificil, veamos 2 formas:
1.- Obtenemos los valores del Enum en un array, luego de eso iteramos por el array y ya tenemos todos los elementos:
Dim values As Array
values = System.Enum.GetValues(GetType(Roles))
Dim valuesString As New StringBuilder
For Each val As String In values
valuesString.AppendFormat("{0},", val)
Next
Dim TotalValues As String = valuesString.ToString
Dim names As Array
names = System.Enum.GetNames(GetType(Roles))
Dim namesString As New StringBuilder
For Each name As String In names
namesString.AppendFormat("{0},", name)
Next
Dim TotalNames As String = namesString.ToString
Para este caso, he tenido que crear dos arrays, uno para obtener los valores… y otro para sus nombres.
También pueden iterar de una sola vez, y obtener ambos datos… pero lo haremos usando Reflection… como se explica en la siguiente forma:
2.- Esta vez, lo que vamos a usar son las funcionalides del espacio de nombres System.Reflection… y de ella la clase FielInfo, que lo que hace es particionar alguna información y exponer dicha metadata.
Si desean saber más sobre FieldInfo, hagan click aquí
Para recorrer por cada uno de los elementos y recuperar su valor y nombre, usamos la siguiente rutina:
Dim enumValores As Reflection.FieldInfo() = GetType(Roles).GetFields()
For Each info As Reflection.FieldInfo In enumValores
If Not info.IsSpecialName Then
Dim val As Integer = info.GetValue(0)
Dim nom As String = info.Name
End If
Next info
Eso sería todo ;)
No hay comentarios.:
Publicar un comentario