单个键具有多个值的哈希表
我想在单个键中存储多个值,例如:
HashTable obj = new HashTable();
obj.Add("1", "test");
obj.Add("1", "Test1");
现在这会引发错误。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想在单个键中存储多个值,例如:
HashTable obj = new HashTable();
obj.Add("1", "test");
obj.Add("1", "Test1");
现在这会引发错误。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(11)
您最好使用两个哈希表,就像我在 这个库 中使用的那样
It would be better for you to use two hashtables as I've used in this library
您可以将
test,test1,test2,...
放入一个表中,然后将该表放入哈希表中作为键的值,该值对于所有这些键都是相同的。例如尝试这样的事情:
然后:
you can put your
test,test1,test2,...
in a table and then put this table in a Hashtable as a value for the key which will be the same for all them.For example try something like this:
and then:
您不能在字典/哈希表中使用相同的键。
我认为你想为每个键使用一个列表,例如(VB.NET):
C#:
You can't use the same key in a Dictionary/Hashtable.
I think you want to use a List for every key, for example (VB.NET):
C#:
我正在使用自己的 MultiDictionary 类。它基于
Dictionary>
但在此之上提供了一些语法糖。应该很容易扩展Entry
来实现IList
I'm using my own
MultiDictionary
class. It's based on aDictionary<TKey,List<TValue>>
but offers a bit of syntax sugar on top of that. Should be easy to extentEntry<TValue>
to implementIList<T>
你可以使用字典。
实际上,您刚才描述的是 Dictionary 集合的理想用途。它应该包含键:值对,无论值的类型如何。通过将值设为自己的类,您将来可以在需要时轻松扩展它。
示例代码:
You could use a dictionary.
Actually, what you've just described is an ideal use for the Dictionary collection. It's supposed to contain key:value pairs, regardless of the type of value. By making the value its own class, you'll be able to extend it easily in the future, should the need arise.
Sample code:
这会引发错误,因为您添加了相同的密钥两次。尝试使用
Dictionary
而不是HashTable
。That throws an error because you're adding the same key twice. Try using a
Dictionary
instead of aHashTable
.您正在寻找一个 Lookup,它可以本机存储多个值每个键。
正如所指出的,这仅适用于固定列表,因为一旦创建了查找,就无法将条目添加到查找中。
You're looking for a Lookup, which can natively store multiple values for each key.
As pointed out this only works for a fixed list since you cannot add entries to a lookup once you have created it.
可能是四年后的事了,但我希望它对以后的人有帮助。
正如本文前面提到的,在 Hashtable(key, value) 中不可能使用相同的键来表示不同的值。尽管如此,您可以创建一个列表或某个对象作为HashTable的键/值对中的值。
然后检索该数据:
Probably it is 4 years later, but I hope it will help somebody later.
As mentioned earlier in the post, it is not possible to use the same key for different values in Hashtable(key, value). Although, you may create a List or some object as a value in the key/value pair of HashTable.
Then to retrieve this data:
在哈希表中存储列表:
这是一个常见的技巧。
Store a list in the hashtable:
This is a common trick.
JFYI,你可以这样声明你的 dic:
JFYI, you can declare your dic this way:
您可以使用 NameValueCollection - 与哈希表相同,并且具有“GetValues()”。
You can use NameValueCollection - works the same as hashtable and has the "GetValues()".