Hashtable具有单个键的不同值

时间:2012-06-01 07:31:38

标签: c# mono ios-simulator hashtable monodevelop

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

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

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

2 个答案:

答案 0 :(得分: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;}
}

(或类似)

答案 1 :(得分:1)

解决您的问题

你没有为你的模特使用合适的班级。 您需要的是List<Hashtable>

改进您的代码

还要考虑为HashTable

中存储的内容编写一个类

最好使用List<YourMedia>

然后你的代码看起来像:

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