Я пишу некоторые из своих собственных структур данных, таких как двоичные и четырехугольные деревья и kD-деревья. Можно ли записать их таким образом, чтобы учитывалось любое количество измерений?
Что-то вроде:
KDTree<2, string> twoDTree = new KDTree<2, string>();
twoDTree[3,4] = "X,Y = (3,4)";
KDTree<4, string> fourDTree = new KDTree<4, string>();
fourDTree[0,1,2,3] = "x1,x2,x3,x4 = (0,1,2,3)";
Единственное решение, которое у меня сейчас есть, это явное создание каждого измерения как его собственного класса:
TwoDTree<string> twoDTree = new TwoDTree<string>();
twoDTree[3,4] = "X,Y = (3,4)";
FourDTree<string> fourDTree = new FourDTree<string>();
fourDTree[0,1,2,3] = "x1,x2,x3,x4 = (0,1,2,3)";
Но эта копия копирует тонну кода, который можно как-то использовать повторно.