Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用x和y坐标作为哈希表键?_C#_Graph_Hashmap_Hashtable - Fatal编程技术网

C# 使用x和y坐标作为哈希表键?

C# 使用x和y坐标作为哈希表键?,c#,graph,hashmap,hashtable,C#,Graph,Hashmap,Hashtable,我正在处理Leetcode问题,我遇到的一个常见场景是,我有一个可以使用的解决方案,但它需要一个哈希表,将密钥作为一对X和Y坐标。在谷歌上我找不到任何帮助,这让我相信如果我想这样使用它们,我做错了什么 这通常发生在图形问题或多维数组问题中 有没有人对我应该如何定期实施这一点有什么想法?或者我不该这么做的原因 我在这里使用的语言是C#,但我相信它适用于大多数语言 非常感谢 您可以使用元组: var dict = new Dictionary<(int x, int y), string>

我正在处理Leetcode问题,我遇到的一个常见场景是,我有一个可以使用的解决方案,但它需要一个哈希表,将密钥作为一对X和Y坐标。在谷歌上我找不到任何帮助,这让我相信如果我想这样使用它们,我做错了什么

这通常发生在图形问题或多维数组问题中

有没有人对我应该如何定期实施这一点有什么想法?或者我不该这么做的原因

我在这里使用的语言是C#,但我相信它适用于大多数语言


非常感谢

您可以使用
元组

var dict = new Dictionary<(int x, int y), string>();
dict.Add((12, 34), "My Town");

x,y坐标散列是图上的一个正方形,角为1)x min,y min 2)x min y max 3)x max y min 4)x max y max。因此,通常情况下,has是x min,y min,并将值向下舍入到min。因此,如果有一个从(0,0)到(4,4)的图,并且希望散列大小为1 x 1,那么(0,0)的散列点将是x<1和y<1的所有点。您还可以将x/y值组合为字符串以生成键。只需确保填充您的值,以便始终有一个明确的固定长度键(“例如0104”)。
x * MAX + y