0
可能重复:
Iterating through an enumeration in Silverlight?迭代通过枚举在Silverlight 4
有没有办法通过一个枚举与C#中的所有值Silverlight来遍历?
我知道WPF允许您使用System.Enum.GetType(Type)方法,但这在Silverlight中不可用。
感谢, 赛斯
可能重复:
Iterating through an enumeration in Silverlight?迭代通过枚举在Silverlight 4
有没有办法通过一个枚举与C#中的所有值Silverlight来遍历?
我知道WPF允许您使用System.Enum.GetType(Type)方法,但这在Silverlight中不可用。
感谢, 赛斯
public static IEnumerable<T> GetEnumValues<T>()
{
return typeof(T)
.GetFields()
.Where(x => x.IsLiteral)
.Select(field => (T)field.GetValue(null));
}
使用
foreach (var bindingFlag in GetEnumValues<BindingFlags>())
{
Debug.WriteLine(bindingFlag);
}
试试这个:
public static List<T> GetList<T>(Type enumType)
{
List<T> output = new List<T>();
var fields = from field in enumType.GetFields()
where field.IsLiteral
select field;
foreach (FieldInfo field in fields)
{
object value = field.GetValue(enumType);
output.Add((T) value);
}
return output;
}
这样称呼它:
List<MyEnum> myList = GetList<MyEnum>(typeof(MyEnum))
@Ani - 你说得对,我错过了那个问题。 – 2011-02-15 21:44:07