0

辞書で参照された最後のインデックスを見つける方法はありますか? 例えば、

Dictionary<string,string> exampleDic;

...

exampleDic["Temp"] = "ASDF"

...

変数として保存せずに「Temp」を取得する方法はありますか?

4

3 に答える 3

2

独自の辞書を実装する

public class MyDic : Dictionary<String, String>
{
    public string LastKey { get; set; }

    public String this[String key]
    {
        get
        {
            LastKey = key;
            return this.First(x => x.Key == key).Value;
        }
        set
        {
            LastKey = key;
            base[key] = value; // if you use this[key] = value; it will enter an infinite loop and cause stackoverflow
        }
    }

次に、コードで

    MyDic dic = new MyDic();
    dic.Add("1", "one");
    dic.Add("2", "two");
    dic.Add("3", "three");

    dic["1"] = "1one";

    dic["2"] = dic.LastKey; // LastKey : "1"

    dic["3"] = dic.LastKey; // LastKey : "2";
于 2012-10-14T06:28:17.117 に答える
0

いいえ。これを格納するものは何もないので (これは非常に珍しい要件です)、自分で行う必要があります。

于 2012-10-14T06:10:38.807 に答える
0

Generic Dictionary に行ってみませんか。

public class GenericDictionary<K, V> : Dictionary<K, V>
{
    public K Key { get; set; }

    public V this[K key]
    {
        get
        {
            Key = key;
            return this.First(x => x.Key.Equals(key)).Value;
        }
        set
        {
            Key = key;
            base[key] = value;
        }
    }
}

使用法:

Dictionary<string, string> exampleDic;
...
exampleDic["Temp"] = "ASDF"
var key = exampleDic.Key;
于 2012-10-14T06:34:03.977 に答える