2011-06-23 34 views

Trả lời

7

đề cập đến 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)); 
} 

Sau đó, bạn có thể điền vào ComboBox của bạn với các mục từ điển trả lại.

Tham khảo những điều sau đây cũng như:

Dictionary enumeration in C#

Enum to dictionary

+0

+1 Tôi thích điều đó! – Dummy01

1

Bạn có thể sử dụng:

Enum.GetValues(typeof(MyEnumType)) 

và chỉ cư các mục combo box từ đó

Sửa : và tất nhiên sử dụng phản xạ ection để có được những kiểu enum :)

6

Bạn có thể vượt qua một enum quát như thế này:

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

Và GetValues ​​sẽ cung cấp cho bạn các giá trị mà có thể xảy ra cho enum đó.

Cách sử dụng sẽ là một chút lẻ:

Method(EnumType.Value) 

để nó có thể không phù hợp cũng như ý tưởng khác.

3

Sử dụng phương pháp này, bạn cann thêm bất kỳ loại enum như thế này: 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

Tôi nghĩ rằng đây là giải thích tốt nhất bằng một ví dụ:

Giả sử bạn có một enum:

enum MyEnum 
{ 
    One, 
    Two, 
    Three 
} 

Bạn có thể khai báo một phương pháp như:

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

     // you can iterate over enumValues with foreach 
    } 

Và bạn sẽ gọi nó là như vậy:

MyEnumMethod(new MyEnum()); 
Các vấn đề liên quan