2012-12-04 54 views
0

我有一個類,類AClass。在這個類中,我灌兩本詞典還,我要回這兩個字典所以我用Tuple<Dictionary<string, string>, Dictionary<string, string>>型方法聲明:從另一個類中的一種方法返回兩個字典與Tuple

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,我應該得到這些兩個詞典,訪問並添加自己的物品到另外兩個字典:

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

如果MyMethodOne是隻返回一個字典我會知道如何從一個詞典項目的方式,但在這裏我有元組,與whic我從來沒有工作過,我不知道如何得到這兩個重新調整的價值觀。我應該這樣做嗎?有沒有另一種方法,也許宣佈方法爲Dictionary< Dictionary<string, string>, Dictionary<string, string>>

那麼,如何從Tuple中獲得字典呢?

+0

請閱讀此http://msdn.microsoft.com/en-us/library/dd268536.aspx。 – juharr

+0

@juharr感謝之手 – Sylca

回答

2

Tuple類暴露了其成員的屬性叫做「項目(編號)」:http://msdn.microsoft.com/en-us/library/dd289533.aspx

所以,你的兩個項元組將有屬性稱爲項目1和項目2:

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

我不當你說你想「分配項目」,如果你只是想獲得對字典的引用或製作一份副本,就不會明白。如果要製作副本,請使用

dictFour = new Dictionary<string, string>(dictionaries.Item2); 
+0

我的不好(assign-> add)!我的意思是在訪問dictOne之後只是爲了循環使用foreach,並將itemd添加到dictThree。我會更新我的問題! – Sylca

+0

@Sylca:那麼只需使用'new Dictionary (dictionaries.Item2)'構造函數,它就是這樣:) –

+0

謝謝,我會試試。 – Sylca

相關問題