0

クラスAClassという 1 つのクラスがあります。このクラスでは、2 つの辞書を入力し、これら 2 つの辞書を返すのでTuple<Dictionary<string, string>, Dictionary<string, string>>、メソッド宣言の型を使用しました。

class AClass
{
    Dictionary<string, string> dictOne = new Dictionary<string, string>();
    Dictionary<string, string> dictTwo = new Dictionary<string, string>();

    public Tuple<Dictionary<string, string>, Dictionary<string, string>> MyMethodOne()
    {
        //Adding items dictOne and dictTwo

        return new Tuple<Dictionary<string, string>, Dictionary<string, string>>(dictOne, dictTwo);
    }
}

他のクラス、クラスBClassでは、これら 2 つの辞書を取得してアクセスし、それらの項目を別の 2 つの辞書に追加する必要があります。

 class BClass
 {
    AClass _ac = new AClass();

    Dictionary<string, string> dictThree = new Dictionary<string, string>();
    Dictionary<string, string> dictFour = new Dictionary<string, string>();

    public void MyMethodTwo()
    {
    //Here I should get dictionaries through Tuple
    //Add items from dictOne to dictThree
    //Add items from dictTwo to dictFour
    //In a way
    //   foreach (var v in accessedDict)
    //   {
    //   dictThree.Add(v.Key, v.Value);
    //   }
    }
}

1 つのディクショナリだけを返す場合MyMethodOne、あるディクショナリから別のディクショナリに項目を取得する方法はわかりますが、ここではTupleを使用したことがなく、これら 2 つの戻り値を取得する方法がわかりません。まったくこのようにする必要がありますか?おそらくメソッドを として宣言する別の方法はありDictionary< Dictionary<string, string>, Dictionary<string, string>>ますか?

では、Tuple から辞書を取得するにはどうすればよいでしょうか。

4

1 に答える 1

2

このTupleクラスは、「Item(Number)」と呼ばれるプロパティでそのメンバーを公開します: http://msdn.microsoft.com/en-us/library/dd289533.aspx

したがって、2 アイテムのタプルには、Item1 と Item2 というプロパティがあります。

var dictionaries = _ac.MyMethodOne();
// now dictionaries.Item1 = dictOne, dictionaries,Item2 = dictTwo
dictThree = dictionaries.Item1;

辞書への参照を取得したい、または辞書のコピーを作成したいだけの場合に、「アイテムを割り当てる」と言うのは理解できません。コピーしたい場合は、

dictFour = new Dictionary<string, string>(dictionaries.Item2);
于 2012-12-04T15:14:26.153 に答える