使用枚举键替代词典?

时间:2012-03-17 14:32:45

标签: c# .net

在我的解决方案中,我非常依赖字典作为关键词。我发现很容易理解并阅读这种结构。

上述一个重大障碍是无法将其序列化。有关详细信息,请参阅Problems with Json Serialize Dictionary<Enum, Int32>

我的问题是:
是否有一个同样可读和直观的模式,用内置的json序列化器替换json序列化的Dictionary<enunm,object>

今天我已将a.Instance.QueryableFields[Fields.Title]替换为a.Instance.QueryableFields[ Fields.Title.ToString()]。不是很优雅,它是错误的开放。

2 个答案:

答案 0 :(得分:1)

序列化时,只需选择字符串值即可。它不是很整洁,但它有效。

a.Instance.QueryableFields.ToDictionary(x => x.Key.ToString(), x => x.Value)

答案 1 :(得分:-1)

你可以在这里轻松地用数组替换字典,就像在C#中枚举内部保存为整数一样:

public enum MyEnum { Zero=0, One, Two };

object[] dictionary = new object[3];
dictionary[(int)MyEnum.Zero] = 4;

编辑:(见评论)

您也可以将Dictionary<Enum, Object>替换为Dictionary<Int, Object>