【发布时间】:2018-10-19 08:28:25
【问题描述】:
我正在使用 C# 制作带有边界检查和环绕等的六边形网格。库中的地图是字典 Dictionary<TileCoord,int> tileIndexByPosition。我还具有为每个图块获取CornerCoord 所需的功能。
我想创建一个字典Dictionary<CornerCoord,int> cornerIndexByPosition,其值取决于tileIndexByPosition。每当tileIndexByPosition 更改其元素时,为角落创建新字典似乎效率很低。
我的想法是使用 LINQ 的 Lazy 评估来强耦合两个字典。希望获得有关如何解决此问题的任何建议。
编辑:我使用这些字典来检查 TileCoord 或 CornerCoord 是否是使用 ContainsKey 的地图的一部分。
【问题讨论】:
-
创建一个类并将 int 存储在那里,然后使用它而不是 int 作为值。如果两个字典包含相同的引用,它应该可以工作
-
我希望能够通过在字典中包含键来检查地图中是否存在特定坐标。
-
也许可以创建一个类来保存所需的信息,并提供字典作为公共属性和方法来设置新点。在内部,您可以随心所欲地存储信息,您只需要确保它们都通过该方法更新。
标签: c# linq dictionary