+ 1 до Ани .Вот версия VB.NET
Вот версия VB.NET ответа Ани:
Public Enum typFoo
itemA = 1
itemB = 2
itemC = 3
End Enum
Sub example()
Dim dict As Dictionary(Of Integer, String) = System.Enum.GetValues(GetType(typFoo)) _
.Cast(Of typFoo)() _
.ToDictionary(Function(t) Integer.Parse(t), Function(t) t.ToString())
For Each i As KeyValuePair(Of Integer, String) In dict
MsgBox(String.Format("Key: {0}, Value: {1}", i.Key, i.Value))
Next
End Sub
Дополнительный пример
В моем случае я хотел сохранитьпуть к важным каталогам и сохраните их в разделе AppSettings моего web.config
файла.Затем я создал enum для представления ключей этих AppSettings ... но моему внешнему инженеру был необходим доступ к этим местам в наших внешних файлах JavaScript.Итак, я создал следующий кодовый блок и разместил его на нашей основной главной странице.Теперь каждый новый элемент Enum автоматически создает соответствующую переменную JavaScript.Вот мой блок кода:
<script type="text/javascript">
var rootDirectory = '<%= ResolveUrl("~/")%>';
// This next part will loop through the public enumeration of App_Directory and create a corresponding JavaScript variable that contains the directory URL from the web.config.
<% Dim App_Directories As Dictionary(Of String, App_Directory) = System.Enum.GetValues(GetType(App_Directory)) _
.Cast(Of App_Directory)() _
.ToDictionary(Of String)(Function(dir) dir.ToString)%>
<% For Each i As KeyValuePair(Of String, App_Directory) In App_Directories%>
<% Response.Write(String.Format("var {0} = '{1}';", i.Key, ResolveUrl(ConfigurationManager.AppSettings(i.Value))))%>
<% next i %>
</script>
ПРИМЕЧАНИЕ. В этом примере я использовал имя перечисления в качестве ключа (не значение int).