2011-06-23 77 views

回答

7

指的Convert Enum To Dictionary

public static IDictionary<String, Int32> ConvertEnumToDictionary<K>() 
{ 
if (typeof(K).BaseType != typeof(Enum)) 
{ 
    throw new InvalidCastException(); 
} 

return Enum.GetValues(typeof(K)).Cast<Int32>().ToDictionary(currentItem => Enum.GetName(typeof(K), currentItem)); 
} 

然后你就可以使用返回的字典项填写您的组合框。

请参考下面的还有:

Dictionary enumeration in C#

Enum to dictionary

+0

+1我喜欢这样! – Dummy01

1

您可以使用:

Enum.GetValues(typeof(MyEnumType)) 

,只是填充从

编辑组合框项目:当然使用refl挠度得到枚举类型:)

6

可以通过一般的枚举是这样的:

private void Method(Enum tEnum) 
{ 
    Enum.GetValues(tEnum.GetType()); 
} 

而且的GetValues会给你是有可能的是枚举值。

的使用将是一个有点奇怪:

Method(EnumType.Value) 

所以它可能不适合以及其他想法。

3

使用这种方法,你卡恩添加任何枚举类型这样的:AddItems(myCombobox, typeof(Options))

public void AddItems (ComboBox cboBox, Type enumType) 
    { 
    cboBox.Items.AddRange(Enum.GetValues (enumType).Cast<object>().ToArray()); 
    } 

    enum Options 
    { 
    Left, Right, Center 
    } 
6

我觉得这是最好的例子来说明:

假设你有一个枚举:

enum MyEnum 
{ 
    One, 
    Two, 
    Three 
} 

您可以声明以下方法:

public static void MyEnumMethod(Enum e) 
    { 
     var enumValues = Enum.GetValues(e.GetType()); 

     // you can iterate over enumValues with foreach 
    } 

你会调用它像这样:

MyEnumMethod(new MyEnum());