我有一小段代码:
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);
}
// ...
好,我得到一个枚举: public enum eShape { 回合, 广场, }
但是还可以在名称中设置值吗? 如:
public enum eShape
{
Round = 4,
Square = 5,
}
答案 0 :(得分:3)
您使用InitExpression:
foreach (var enumNameAndValue in EnumsCollection[enumName])
{
var codeProperty = new CodeMemberField
{
Name = enumNameAndValue.Value,
InitExpression = new CodePrimitiveExpression(enumNameAndValue.Key); // Uses key for value
};