2

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

                   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";

如何解决这个....提前谢谢!!

4

2 回答 2

9

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

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;}
}

(或类似的)

于 2012-06-01T07:33:55.953 回答
1

解决您的问题

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

改进你的代码

还可以考虑为您存储在HashTable.

最好的办法是使用List<YourMedia>

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

List<Media> medias = new List<Media>();
media.add(new Media("x001.xhtml", "application/xhtm+xml", "text/001.xhtml")
[...]
于 2012-06-01T07:33:27.497 回答