List 是否更新字典中的现有列表对象?

List 是否更新字典中的现有列表对象?,list,dictionary,List,Dictionary,我们在表示.NET字典集合中的文件数据时遇到了一个问题,通过一个简化的示例可能更容易解释: Dictionary<int, string> header = new Dictionary<int, string>(); Dictionary<int, List<string>> lines = new Dictionary<int, List<string>>(); List<string> line; //C

我们在表示.NET字典集合中的文件数据时遇到了一个问题,通过一个简化的示例可能更容易解释:

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");
???

在这一点上,我不确定如何将新字符串添加到字典中第一个List对象的末尾,以便它包含字符G、A、T、E、s。当value参数是List对象时,是否有方法更新现有字典对象?

在lines字典中,您可以使用键1访问列表,如下所示

line = lines[1]; 
line.Add("S");
line = lines[2]; 
line.Add("S");
假设你想在鲍尔默的末端放一个S,那么它是另一个键,2,就像这样

line = lines[1]; 
line.Add("S");
line = lines[2]; 
line.Add("S");
为了查看数据,我对字典中的每个列表进行了如下迭代

foreach(KeyValuePair<int, List<string>> entry in lines) {
    foreach (string s in entry.Value) {
        Console.Write(s);
    }
}
line = new List<string>();
line.Add("S");
lines[1].AddRange(line); //combines two list objects, one after the other
最后,我不推荐这样做,但如果您的实现需要,您可以使用AddRange函数将一个列表附加到另一个列表,如下所示

foreach(KeyValuePair<int, List<string>> entry in lines) {
    foreach (string s in entry.Value) {
        Console.Write(s);
    }
}
line = new List<string>();
line.Add("S");
lines[1].AddRange(line); //combines two list objects, one after the other

谢谢,这正是我们要找的。