具有单个键的不同值的哈希表

本文关键字:哈希表 单个键 | 更新日期: 2023-09-27 18:36:03

如果我对同一个键有多个值,那么如何在哈希表中添加它例如:

                   Hashtable hs = new Hashtable();
                      hs["id"]= "x001.xhtml";
                      hs["media-type"]= "application/xhtm+xml"; 
                      hs["href"]= "text/001.xhtml";
                      hs["id"]= "x002.xhtml";
                      hs["media-type"]= "application/xhtm+xml";
                      hs["href"]= "text/002.xhtml";
                     hs["id"]= "x003.xhtml";
                     hs["media-type"]= "application/xhtm+xml";
                     hs["href"]= "text/003.xhtml";

这只取哈希表中的最后一组,即

                     hs["id"]= "x003.xhtml";
                     hs["media-type"]= "application/xhtm+xml";
                     hs["href"]= "text/003.xhtml";

如何解决这个问题....提前感谢!!

具有单个键的不同值的哈希表

哈希表定义为具有唯一键,索引器替换现有值。听起来你实际上想要一个对象列表,即

var list = new List<YourType> {
    new YourType { Id = "x001.xhtml", MediaType = "...", Href = "..." },
    new YourType { Id = "x002.xhtml", MediaType = "...", Href = "..." },
    new YourType { Id = "x003.xhtml", MediaType = "...", Href = "..." }
};

public class YourType {
    public string Id {get;set;}
    public string MediaType {get;set;}
    public string Href {get;set;}
}

(或类似)

解决您的问题

您没有为您的模型使用正确的类。你需要的是一个List<Hashtable>

改进您的代码

还可以考虑为存储在HashTable中的内容编写一个类。

最好是使用List<YourMedia>

然后,您的代码将如下所示:

List<Media> medias = new List<Media>();
media.add(new Media("x001.xhtml", "application/xhtm+xml", "text/001.xhtml")
[...]