2013-02-04 27 views
-2
 Dictionary<string, List<Piese>> SetPiese = new Dictionary<string, List<Piese>>(); 

     char[] litere = "ABCDEFGHIJLMNOPRSTUVXZ".ToCharArray(); 

     for (int i = 1; i <= litere.Length; i++) { 
      SetPiese.Add(litere[i], Set + litere[i]); 
     } 

     List<Piese> SetA = GenerareSetLitere("A", 1, 11); 
     List<Piese> SetB = GenerareSetLitere("B", 9, 2); 
     List<Piese> SetC = GenerareSetLitere("C", 1, 5); 
     ................................................ 

所以我有很多列表,我想將它們添加到字典中。我該如何做到這一點?C#List <>添加列表到字典

回答

6

很簡單,不要在單獨的變量中聲明它們以開始。以編程方式工作總是很痛苦。如果你想用開始:

List<Piese>[] sets = new List<Piese>[] 
{ 
    GenerareSetLitere("A", 1, 11), 
    GenerareSetLitere("B", 9, 2), 
    GenerareSetLitere("C", 1, 5) 
    ... 
}; 

那麼你可以使用:

// Note loop condition change 
for (int i = 0; i < litere.Length; i++) { 
    SetPiese.Add(litere[i], sets[i]); 
} 

甚至更​​好,如果literere實際上是一堆表達式可以內嵌指定,你可以做整個事情集合初始化:

Dictionary<string, List<Piese>> SetPiese = new Dictionary<string, List<Piese>> 
{ 
    { "first-key", GenerareSetLitere("A", 1, 11) }, 
    { "second-key", GenerareSetLitere("B", 9, 2) } 
}; 

+0

謝謝!有用。 – TGeorge

+0

@AppDeveloper:請不要在無關的問題或答案上添加評論。 –

2

我想這個作品:

Dictionary<string, List<Piese>> SetPiese = new Dictionary<string, List<Piese>>(); 
List<Piese> SetA = GenerareSetLitere("A", 1, 11); 
List<Piese> SetB = GenerareSetLitere("B", 9, 2); 
List<Piese> SetC = GenerareSetLitere("C", 1, 5); 
SetPiese.Add("A", SetA); 
SetPiese.Add("B", SetB); 
SetPiese.Add("C", SetC); 

我不知道,因爲你沒有提到你的字典的關鍵。

+0

沒錯這就是作品,但如果我有更多然後3華里STS?你不能...做SetPiese.Add(「ABCDE..XYZ」,Set [ABCDEF ... XYZ]); 26次:) @Jon Skeet了:)謝謝。 – TGeorge

相關問題