将枚举类型转换为IList

时间:2010-11-09 07:28:31

标签: c# ienumerable menu ilist

您好
如何将enum转换为IList
假设您要阅读FormWindowState枚举中的所有元素,并返回包含IList<FormWindowState>NormalMinimized

Maximized

2 个答案:

答案 0 :(得分:8)

使用Enum.GetValues()。例如:

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

它实际上返回FormWindowState[],但无论如何都适当地实现了IList<T>

如果您正在使用枚举进行大量工作,而您希望采用更加类型安全的方法,那么您可能也希望查看我的Unconstrained Melody项目。

答案 1 :(得分:0)

IList<FormWindowState> myList;//instantiate it with a concrete collection.


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

这只是针对这种情况,当你只有3个枚举成员时。否则使用Jon Skeet的解决方案。