2010-10-05 39 views
1

枚舉我有這小小的一段代碼:使用的CodeDOM生成與價值以及名稱

private Dictionary<string, IList<KeyValuePair<int, string>>> EnumsCollection = new Dictionary<string, IList<KeyValuePair<int, string>>>(); 

    // ...... Dictionary is filled, fine 

    // ... outer loop 
    foreach (var enumNameAndValue in EnumsCollection[enumName]) 
    { 
     var codeProperty = new CodeMemberField 
     { 
       Name = enumNameAndValue.Value 
     }; 

     codeClass.Members.Add(codeProperty); 
    } 
    // ... 

好,我得到一個枚舉: 公共枚舉ESHAPE { 回合, 廣場, }

,但它有可能還設定值而且名稱? 如:

public enum eShape 
{ 
    Round = 4, 
    Square = 5, 
} 

回答

2

你會使用InitExpression

foreach (var enumNameAndValue in EnumsCollection[enumName]) 
{ 
    var codeProperty = new CodeMemberField 
    { 
      Name = enumNameAndValue.Value, 
      InitExpression = new CodePrimitiveExpression(enumNameAndValue.Key); // Uses key for value 
    }; 
+0

謝謝!這就是我想知道:對我學到新的東西每天 – ibiza 2010-10-05 01:28:52