具有枚举键的字典的替代项
本文关键字:字典 枚举 | 更新日期: 2023-09-27 18:28:18
在我的解决方案中,我严重依赖以枚举为键的Dictionaries。我发现这个结构很容易理解和阅读。
上述问题的一个重要障碍是不可能将其序列化。请参阅Json序列化字典的问题<枚举,Int32>了解更多信息。
我的问题是:
是否有一种同样可读和直观的模式可以用内置的json序列化程序替换可json序列化的Dictionary<enunm,object>
?
今天我用a.Instance.QueryableFields[ Fields.Title.ToString()]
替换了a.Instance.QueryableFields[Fields.Title]
。不太优雅,而且容易出错。
序列化时,只需选择字符串值。它不是很整洁,但很管用。
a.Instance.QueryableFields.ToDictionary(x => x.Key.ToString(), x => x.Value)
您可以很容易地在这里用数组替换字典,就像在C#中一样,枚举在内部保存为整数:
public enum MyEnum { Zero=0, One, Two };
object[] dictionary = new object[3];
dictionary[(int)MyEnum.Zero] = 4;
编辑:(见评论)
也可以将Dictionary<Enum, Object>
替换为Dictionary<Int, Object>
。