如何使用 3 维键创建字典

How to create a dictionary with a 3-dimensional key

我需要某种像字典一样工作的结构,但键是一个 3D 点(由 3 个整数表示)。

Ball b1 = new Ball();
Ball b2 = new Ball();

D[-1,3,29] = b1;
D[9,0,3] = b2;

我正在考虑创建这样的东西:

Dictionary<int, Dictionary<int, Dictionary<int, Ball>>> D = new ...

有没有更好的方法?

A ValueTuple 在与简单类型一起使用时具有适当的相等性和哈希码行为。因此,您可以在字典中使用它们(并且适用)。

var dict = new Dictionary<(int,int,int),something>
dict.Add((1,2,3), sometthing);