Преобразование типа Enum в IList - PullRequest
1 голос
/ 09 ноября 2010

Привет
Как я могу конвертировать enum в IList?
Предположим, что вы хотите прочитать все элементы в FormWindowState enum и вернуть IList<FormWindowState>, содержащий Normal, Minimized и Maximized

Ответы [ 2 ]

8 голосов
/ 09 ноября 2010

Использование Enum.GetValues(). Например:

var list = (IList<FormWindowState>) Enum.GetValues(typeof(FormWindowState));

На самом деле он возвращает FormWindowState[], но в любом случае реализует IList<T>.

Если вы много работаете с enums и хотите использовать более безопасный для типов подход, возможно, вы захотите взглянуть и на мой проект Unconstrained Melody .

0 голосов
/ 09 ноября 2010
IList<FormWindowState> myList;//instantiate it with a concrete collection.


myList.Add(FormWindowsState.Normal);
myList.Add(FormWindowsState.Minimized);
myList.Add(FormWindowsState.Maximized);

Это как раз для случая, когда у вас есть только 3 члена enum. В противном случае используйте решение Джона Скита.

...