我正在开发具有很多有关该信息的地形生成器。
现在看这张照片:
另外,假设我有2个功能:
1)Function A
作为图块的输入(x,y)坐标,它计算生物群系并吐出计算出的生物群系的字符串,例如"forest"
。
2)Function B
作为function A
计算的输入生物群系,并返回该(x,y)切片的计算元素的字符串。例如,假设它返回了"grass"
。
现在,我拥有那两条信息,我很想立即能够通过"grass"
访问"forest"
中"biomes"
的信息知道这两个字符串。如果您知道所需信息的索引,可以将其视为立即从数组访问数据。例如,我很想看看可以在森林生物群落的草地上放置哪些瓷砖(图片上的string[] tiles
,以及每个瓷砖的概率(float[] probabilityOfTile
)。
那么,这里的方法是什么?如何组织数据以根据函数返回的字符串快速访问信息?我当时在考虑嵌套字典,但是经过几层嵌套后代码变得很混乱,所以有更好的方法吗?
答案 0 :(得分:1)
答案可能是使用一种“复合键”。因此,您可以创建以下字典:
var dataStore = new Dictionary<string, CUSTOM_OBJECT>();
并添加由字符串组成的键,即“ biomes_forrest_grass”。这样,您可以达到“无限”的深度。 用法:
var funcARes = funcA(param1);
var funcBRes = funcB(funcARes);
var yourObjectData = dictionary["${funcARes}_{funcBRes}"];
// then you can do it like this
yourObjectData.tiles[index] and yourObjectData.probability[index]`