我正在使用C#处理具有边界检查和包装等功能的六边形网格。库中的地图是字典Dictionary<TileCoord,int> tileIndexByPosition
。我还具有获取每个图块的CornerCoord
所需的功能。
我想创建一个字典Dictionary<CornerCoord,int> cornerIndexByPosition
,其值取决于tileIndexByPosition
。每当tileIndexByPosition
更改其元素时,为角创建新的字典似乎效率很低。
我的想法是使用LINQ的惰性求值将两个字典牢固地结合在一起。希望获得有关如何解决此问题的任何建议。
编辑:我使用这些字典来检查TileCoord
或CornerCoord
是否是地图的一部分。
答案 0 :(得分:0)
我会这样使用KeyValuePair
KeyValuePair<Dictionary<TileCoord,int>,Dictionary<CornerCoord,int>> kvp;
如果更改键(tileIndexByPosition),则还可以更改取决于KeyValuePair键的KeyValuePair值的字典值。
这就像您说的那样。但我认为您想要这样的东西:
Dictonary<KeyValuePair<TileCoord,int>,KeyValuePair<CornerCoord,int>> dic;
我希望这会有所帮助。
亲切的问候