2011-02-15 4 views
0

가능한 중복 :
Iterating through an enumeration in Silverlight?으로 반복

C 번호와 실버의 열거에있는 모든 값을 반복 할 수있는 방법이 있나요?

WPF는 System.Enum.GetType (Type) 메서드를 사용할 수 있지만 Silverlight에서는 사용할 수 없다는 것을 알고 있습니다.

감사합니다, 세스

+0

@Ani - 네 말이 맞아, 나는 그 질문을 놓쳤다. –

답변

4
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); 
     } 
0

이 시도 :

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))