【发布时间】:2012-06-04 00:54:18
【问题描述】:
我正在使用静态方法
Enum.GetValues(typeof(SomeEnum));
当您需要做的只是枚举值时,此方法非常有用,但由于某种原因,它返回了一个非常简单的 Array 类形式。 我正在尝试找到一种简单的方法将其返回值转换为更“正常”的集合类,例如常规数组或 List。
到目前为止,如果我想这样做,我必须枚举 Enum.GetValues(typeof(SomeEnum)); 的输出。并将它们一一添加到 List.
任何想法如何更干净地做到这一点?
答案:
关键是转换返回结果--
SomeEnum[] enums = (SomeEnum[]) Enum.GetValues(typeof(SomeEnum));
如果你需要一个列表,那么只需将它包裹在括号中并像这样 ToList :
List<SomeEnum> list = ((SomeEnum[]) Enum.GetValues(typeof(SomeEnum))).ToList();
【问题讨论】:
-
有人花时间否决了这个问题。迷人。他可能甚至不知道这比表面上看起来要复杂得多。
-
+1 我花时间反对投反对票 :)
-
+1 表示最终让我做了一些调查并教会了我一些新东西的问题。 (如果您有兴趣,我修改了我的答案,并提供了一些有关 Array 类的附加信息,您可能会发现这些信息很有用。)