我想知道是否有可能使用与实际键相同但是不同对象的键从哈希表中检索项目。我理解这可能不可能,但我想看看是否有任何巧妙的方法可以做到这一点。
我的问题源于我太愚蠢了,创建了以int[]为键的哈希表,其中整数数组包含表示空间位置的索引。我某种程度上知道每次想要添加新条目时需要创建新的int[],但忽略了后来生成的空间坐标数组在从哈希表中检索值方面将毫无用处。
现在我正在尝试决定是否重新排列事物,以便我可以将我的值存储在ArrayLists中,或者是否每次想要获取值时都要在Hashtable的键列表中搜索所需的键,这两个选项都不是很好。
当然,除非有办法使//1像//2一样工作!
提前感谢。
我的问题源于我太愚蠢了,创建了以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;
}
Hashtable
中查找值有什么问题吗?这是一个常见的情况,在.NET中得到了很好的支持。 - Samuel Neff