我们在.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对象?
答案 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