C# 哈希表键并生成相同的值

C# 哈希表键并生成相同的值,c#,hashtable,C#,Hashtable,我试图理解哈希表是如何工作的。在本例中,我可以清楚地看到此哈希表包含包含完全相同值的键。显然这是可行的,但我想知道为什么?说散列函数只是指向一个不同的内存位置,所有的内存位置都同时包含相同的二进制文件,对吗?我似乎在搜索中找不到合适的答案 Hashtable h = new Hashtable(); h.Add(1, "lol"); h.Add(2, "lol"); h.Add(3, "lol"); Add方法先接受键,然后接受值

我试图理解哈希表是如何工作的。在本例中,我可以清楚地看到此哈希表包含包含完全相同值的键。显然这是可行的,但我想知道为什么?说散列函数只是指向一个不同的内存位置,所有的内存位置都同时包含相同的二进制文件,对吗?我似乎在搜索中找不到合适的答案

        Hashtable h = new Hashtable();
        h.Add(1, "lol");
        h.Add(2, "lol");
        h.Add(3, "lol");

Add
方法先接受键,然后接受值。尝试切换参数,看看会发生什么。您将得到一个
ArgumentException
,因为只允许使用唯一键


另请参见文档

是,但是如果我想要两个具有相同值的密钥对,该怎么办?也许我的“钥匙”萨姆和亚历克斯碰巧都有相同的密码“123abc”。所以我的两个钥匙对是和。这有什么问题吗?正如你的例子所证明的,这是完全可以接受的。键是1、2和3,具有相同的值“lol”。哈希表或字典是将特定键链接到值的数据结构。键很重要,值不重要,值只是为键存储的。它之所以有效,是因为这是字典的重点。你为什么认为不应该?