具有枚举键的字典的替代项

本文关键字:字典 枚举 | 更新日期: 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>