2012-08-13 20 views
0

我可以預先使用像這樣很方便地使用一個字符串數組沒有聲明它:如何使用字典而不提前聲明它?

new string[]{"MyString1","MyString2"} 

並且用它作爲一個方法參數,而無需事先聲明變量它。但是我不能用Dictionary<string,string>正確地做到這一點。 我想:

new Dictionary<string,string>(){"1","2"} 

而且

new Dictionary<string,string>().Add("1","2"): 

上面這些都不是在被編譯方面的工作。

+0

描述「沒有工作」。並提供周圍的代碼。這是模糊不清的。 – 2012-08-13 11:50:04

+0

@亨克霍爾特曼:我試圖編輯它更多一點,使其更清晰。我希望它現在夠了嗎?如果不是,請回復給我:) – Breeze 2012-08-14 15:01:51

回答

12

做這種方式

new Dictionary<string,string>(){{"Key1","Value1"},{"Key2","Value2"}}; 

每一個辭條是Key和相應值的組合。因此,第一項是{"Key1","Value1"},其中密鑰是"Key1"並且值是"Value1"等等。

並將其用作方法參數,無需事先爲其聲明變量。不過,我無法正確使用Dictionary來做到這一點。我想:

new Dictionary<string,string>().Add("1","2"): 

這不能用於方法參數爲Add方法不返回任何東西。它是一個無效的方法。

深思:new string[]{"MyString1","MyString2"}是一維陣列,即string[]而字典是像字符串[X] [2]其中,x是字典的長度。 (字符串[x] [2]僅用於表示目的,我知道它的非法聲明)

8

試試這個:

new Dictionary<string, string>() { 
    { "1", "2" }, { "3", "4" } 
}; 

你需要額外的支架來初始化它的字典由鍵值對。這些括號基本上稱爲Add(),並且因爲Add()需要兩個參數(鍵和值),所以在括號內放入兩個項目。

此方法可用於任何Collection,其中Add()方法需要多個參數。

在這裏看到有關對象和集合初始化的詳細信息:
http://msdn.microsoft.com/en-us/library/bb384062.aspx

或者,關於初始化詞典:
http://msdn.microsoft.com/en-us/library/bb531208

+0

可能值得詳細闡述一點,並顯示如何做兩個條目。 .. – 2012-08-13 11:46:20