0

我可以很容易地使用一个字符串数组,而无需使用类似这样的东西提前声明它:

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

并将其用作方法参数,而无需事先为其声明变量。但是我不能用Dictionary<string,string>. 我试过:

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

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

以上都没有在编译方面起作用。

4

2 回答 2

12

这样做

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

每个 Dictionary 条目都是 Key 和相应值的组合。因此,第一个条目是{"Key1","Value1"}Key 所在的位置"Key1",value所在的位置"Value1"等等。

并将其用作方法参数,而无需事先为其声明变量。但是我不能用字典正确地做到这一点。我试过 :

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

这不能用于方法参数,因为Add方法不返回任何内容。它是一种无效的方法。

深思熟虑:new string[]{"MyString1","MyString2"} 是一维数组string[],而字典就像 string[x][2] ,其中 x 是字典的长度。(string[x][2] 仅用于表示目的。我知道它的非法声明)

于 2012-08-13T11:45:10.420 回答
8

试试这个:

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

您需要额外的括号来初始化字典所包含的键值对。这些括号基本上调用Add(),并且由于Add()需要两个参数(键和值),因此您将两个项目放在这些括号内。

此方法可用于Add()方法采用多个参数的任何 Collection。

有关对象和集合初始化程序的更多信息,请参见此处:http:
//msdn.microsoft.com/en-us/library/bb384062.aspx

或者,关于初始化字典:http:
//msdn.microsoft.com/en-us/library/bb531208

于 2012-08-13T11:44:27.037 回答