2012-01-12 3 views
1

.Net 4.0では、enum項目のリストを取得するのにSystem.Enum.GetValues(typeof(Gender))を使用します。完全な例で
は、私がこのように列挙値を探すために使用します。.Net 3.5でEnum.GetValuesを使うには?

Gender retVal = Gender.Male; 

    foreach (Gender enumType in System.Enum.GetValues(typeof(Gender))) 
    { 
     if (enumType.ToString().Trim().ToUpper().Substring(0,1).Equals(stringToEnum.Trim().ToUpper())) 
     { 
      retVal = enumType; 
      break; 
     } 
    } 

しかし、どのように私は、.NET 3.5(ポケットPC)でこれを行うだろうか?
ありがとうございます!

私は以下の回答を使用していますが、それは私にとっては役に立ちません。

enum値:ここでは、コードです

namespace Ionic.Zlib 
{ 
    public enum CompressionLevel 
    { 
     Level0 = 0, 
     None = 0, 
     Level1 = 1, 
     BestSpeed = 1, 
     Level2 = 2, 
     Level3 = 3, 
     Level4 = 4, 
     Level5 = 5, 
     Level6 = 6, 
     Default = 6, 
     Level7 = 7, 
     Level8 = 8, 
     BestCompression = 9, 
     Level9 = 9, 
    } 
} 

使用法:

私はちょうど新しいオブジェクトを初期化するために欠場します。これが機能するようになりました:

public static Ionic.Zlib.CompressionLevel GetCompressionLevel(string Expression) 
{ 
    Ionic.Zlib.CompressionLevel result = Ionic.Zlib.CompressionLevel.None; 
    foreach (Ionic.Zlib.CompressionLevel item in EnumGetValues(new Ionic.Zlib.CompressionLevel())) 
    { 
     if(object.Equals(item.ToString().Trim().ToUpper(), Expression.Trim().ToUpper())) 
     { 
      result = item; 
      break; 
     } 
    } 
    return result; 
} 
+0

Iは、Pocket PCは、.Nを使用していることを前提としETコンパクトフレームワーク? –

答えて

5

あります反射によってそれを実現するブログ記事herehereをアーカイブ):

public IEnumerable<Enum> GetValues(Enum enumeration) 
{ 
    List<Enum> enumerations = new List<Enum>(); 
    foreach (FieldInfo fieldInfo in enumeration.GetType().GetFields(BindingFlags.Static | BindingFlags.Public)) 
    { 
     enumerations.Add((Enum)fieldInfo.GetValue(enumeration)); 
    } 
    return enumerations; 
} 
+0

ありがとう!それは今作動する!!!! – fiberOptics

関連する問題