.net 有没有不使用字典的理由

.net 有没有不使用字典的理由,.net,linq,performance,dictionary,code-standards,.net,Linq,Performance,Dictionary,Code Standards,我和一位同事讨论了在结果集更改时使用字典并重新填充它,还是每次对列表中的所有元素使用linq循环更好 我们正在尝试映射父/子关系,我建议使用ParentID作为字典键,使用dictionary值作为自定义对象 我们通常需要迭代所有的父/子对象,并运行列表 你有什么理由不想在这种情况下使用字典吗?如果是这样的话,您将使用什么来替代性能,这实际上取决于您的特定应用程序,因此您必须进行测试 如果您确实每次都需要迭代整个集合,那么拥有字典不会有多大好处(如果有的话)。另一方面,如果您偶尔需要通过它们的键

我和一位同事讨论了在结果集更改时使用字典并重新填充它,还是每次对列表中的所有元素使用linq循环更好

我们正在尝试映射父/子关系,我建议使用ParentID作为字典键,使用dictionary值作为自定义对象

我们通常需要迭代所有的父/子对象,并运行列表


你有什么理由不想在这种情况下使用字典吗?如果是这样的话,您将使用什么来替代性能,这实际上取决于您的特定应用程序,因此您必须进行测试

如果您确实每次都需要迭代整个集合,那么拥有
字典
不会有多大好处(如果有的话)。另一方面,如果您偶尔需要通过它们的键来定位特定实例,
Dictionary
可能就是您所需要的


请注意,即使您使用的是字典,您仍然可以在需要时遍历值列表,其“权重”不会比遍历普通的
列表的“权重”大多少,但如果需要,您仍然可以使用字典功能。

同时编写和配置文件以查看哪一个获胜。如果没有更多关于具体场景的信息,很难确定什么是好的建议。例如:你的普通负载有多大,你需要支持多大的负载(未来验证),哪种代码更简单(你的描述留下了很多需要改进的地方-真正的代码会有帮助),这甚至是你的应用程序的瓶颈,还是你只是在吹毛求疵,等等。