Я хотел бы знать, есть ли какой-нибудь возможный способ извлечь элемент из хеш-таблицы, используя ключ, идентичный фактическому ключу, но другой объект. Я понимаю, почему это, вероятно, невозможно, но я хотел бы посмотреть, есть ли хитрый способ сделать это.
Моя проблема возникает из-за того, что, будучи таким же глупым, как я, я создал хеш-таблицы с int [] в качестве ключей, с целочисленными массивами, содержащими индексы, представляющие пространственную позицию. Я каким-то образом знал, что мне нужно создавать новый тип int [] каждый раз, когда я хотел добавить новую запись, но забыл подумать, что когда я буду генерировать массивы пространственных координат позже, они будут бесполезны при получении значений из моих хеш-таблиц.
Теперь я пытаюсь решить, следует ли изменить порядок вещей, чтобы я мог сохранять свои значения в ArrayLists, или искать в списке ключей в Hashtable тот, который мне нужен каждый раз, когда я хочу получить значение, ни из вариантов очень круто.
Если конечно нет способа заставить // 1 работать как // 2!
Заранее спасибо.
static void Main(string[] args)
{
Hashtable dog = new Hashtable();
//1
int[] man = new int[] { 5 };
dog.Add(man, "hello");
int[] cat = new int[] { 5 };
Console.WriteLine(dog.ContainsKey(cat)); //false
//2
int boy = 5;
dog.Add(boy, "wtf");
int kitten = 5;
Console.WriteLine(dog.ContainsKey(kitten)); //true;
}