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

問題を解決する

Yout モデルに適切なクラスを使用していません。必要なのは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 に答える