更新字典中的现有List对象?

时间:2015-01-13 21:12:26

标签: list dictionary

我们在.NET Dictionary集合中表示文件数据存在问题,可能更容易用简化示例解释:

Dictionary<int, string> header = new Dictionary<int, string>();
Dictionary<int, List<string>> lines = new Dictionary<int, List<string>>();
List<string> line;

//Create first header/lines Dic objects
header.Add(1, "Bill");
line = new List<string>();
line.Add("G");
line.Add("A");
line.Add("T");
line.Add("E");
lines.Add(1, line);

//Create second header/lines Dic objects
header.Add(2, "Steven");
line = new List<string>();
line.Add("B");
line.Add("A");
line.Add("L");
line.Add("L");
line.Add("M");
line.Add("E");
line.Add("R");
lines.Add(2, line);

//Update first lines Dic object by adding a final line
line = new List<string>();
line.Add("S");
???

此时我不确定如何将新字符串添加到Dictionary中第一个List对象的末尾,以便它包含字符&#34; G&#34; ,&#34; A&#34;,&#34; T&#34;,&#34; E&#34;,&#34; S&#34;。有没有办法在value参数是List对象时更新现有的Dictionary对象?

1 个答案:

答案 0 :(得分:0)

在您的线词典中,您可以使用键1访问列表,如此...

line = lines[1]; 
line.Add("S");

假设你想把一个S放在BALLMER的末尾,那么它就是另一个键,2,就像这样......

line = lines[2]; 
line.Add("S");

只是为了查看数据,我会迭代你字典中的每个列表......

foreach(KeyValuePair<int, List<string>> entry in lines) {
    foreach (string s in entry.Value) {
        Console.Write(s);
    }
}

最后,我不建议这样做但是如果你的实现需要,你可以使用AddRange函数将一个列表附加到另一个列表,就像这样......

line = new List<string>();
line.Add("S");
lines[1].AddRange(line); //combines two list objects, one after the other