我有这小段代码:
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,
}
最佳答案
您将使用InitExpression:
foreach (var enumNameAndValue in EnumsCollection[enumName])
{
var codeProperty = new CodeMemberField
{
Name = enumNameAndValue.Value,
InitExpression = new CodePrimitiveExpression(enumNameAndValue.Key); // Uses key for value
};