我在代码中使用了太多字典中的字典,这是代码味道吗?

cod*_*ing 12 c# dictionary

我正在使用很多包含其他字典集合的字典集合,例如:

Dictionary<Guid, List<string>>()

Dictionary<Guid, Dictionary<Guid, List<string>>>()
Run Code Online (Sandbox Code Playgroud)

我循环遍历这些地图,并在我的代码中传递参数.

这似乎是一个坏主意,因为你现在无法真正扩展这些集合的本质.

将它们包装在课堂中会更好吗?

seh*_*ehe 6

你遇到这样的限制吗?你的程序难以改变/调试吗?如果是这样,重构.否则,利润:你是一个务实的程序员.

也就是说,我可以看到立即改进的空间:

IDictionary<Guid, List<string>> x;

IDictionary<Guid, IDictionary<Guid, List<string>> y = new Dictionary<Guid, IDictionary<Guid, List<string>>();
Run Code Online (Sandbox Code Playgroud)

  • @codecompleting在这种情况下,重构:)只需聚合一个字典,并拥有带描述性名称的好查询方法.不是很多工作,而且你会知道什么时候你对它感到满意,就像你知道_now_,有些东西困扰着你. (2认同)

Geo*_*ett 5

我会说是的,专门为它创建一个类.然后,您可以根据您的使用情况添加/不实施方法,而不是解决您Dictionary在使用时遇到的任何限制.

听起来你想要一个树状的结构.