2009-06-24 45 views
121

有誰知道是否有一種方法可以在創建C#字典時將值插入到C#字典中?我可以,但不想,對每個項目做 dict.Add(int, "string")如果有什麼更有效,如:如何在實例化中向C#字典插入值?

Dictionary<int, string>(){(0, "string"),(1,"string2"),(2,"string3")}; 
+1

可能重複 entries?](http://stackoverflow.com/questions/495038/can-i-use-a-collection-initializer-for-dictionarytkey-tvalue-entries) – 2013-09-27 20:08:57

回答

152

有一個關於如何做整頁,在這裏:

http://msdn.microsoft.com/en-us/library/bb531208.aspx

示例:

在下面的代碼示例中,Dictionary<TKey, TValue>是 已使用類型的實例初始化:

var students = new Dictionary<int, StudentName>() 
{ 
    { 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}}, 
    { 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}}, 
    { 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}} 
}; 
+0

對不起,我使用了錯誤的搜索條件谷歌顯然。這個鏈接很棒。 – kd7iwp 2009-06-24 16:58:39

+3

這隻適用於.NET 3.5編譯器,不過......請記住這一點。 – 2009-06-24 16:59:00

44
Dictionary<int, string> dictionary = new Dictionary<int, string> { 
    { 0, "string" }, 
    { 1, "string2" }, 
    { 2, "string3" } }; 
6

可以實例一本字典,並添加項目到這樣的:

var dictionary = new Dictionary<int, string> 
    { 
     {0, "string"}, 
     {1, "string2"}, 
     {2, "string3"} 
    }; 
11

你幾乎有:

var dict = new Dictionary<int, string>() 
{ {0, "string"}, {1,"string2"},{2,"string3"}}; 
8

您還可以使用Lambda表達式,用於從任何其他IEnumerable對象插入任何Key Value對。鍵和值可以是任何你想要的類型。

Dictionary<int, string> newDictionary = 
       SomeList.ToDictionary(k => k.ID, v => v.Name); 

我發現,要簡單得多,因爲你在.NET

希望幫助任何地方使用了IEnumerable對象!

Tad。

0

希望它能很好地工作。

Dictionary<string, double> D =new Dictionary<string, double>(); D.Add("String", 17.00);

4

只要你知道作爲C#6如下

var students = new Dictionary<int, StudentName>() 
{ 
    [111] = new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}, 
    [112] = new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}, 
    [113] = new StudentName {FirstName="Andy", LastName="Ruth", ID=198} 
}; 

乾淨多了:)你現在可以初始化

的[我可以使用字典集合初始化