如何创建一个动态列表<;列表<;字符串>>;
本文关键字:gt 列表 lt 字符串 动态 何创建 创建 一个 | 更新日期: 2023-09-27 18:15:25
我想读取文件中的一些文本。文本如下:
////
B
C
///
D
E
F
////
我想创建一个List<List<string>>
来存储数据。所以我这样编程:
List<string> event = new List<string>();
List<List<string>> eventList = new List<List<string>>();
System.IO.StreamReader f = new System.IO.StreamReader("list.txt");
string line = f.ReadLine();
while (line != null && (! line.Equals("")))
{
if (line[0].Equals('/'))
{
eventList.Add(event);
event.Clear();
}
else
{
event.Add(line);
}
line = f.ReadLine();
}
我想要得到的是一个列表,其中第一个列表是A,第二个列表是B、C,第三个列表是D、E、F
但我得到的也是一个列表列表,其中第一个列表是D、E、F,第二个列表和第三个列表都是D、E、F
有人知道如何调试它吗?
执行此操作时:
eventList.Add(event);
您不是在复制event
列表,而是在向eventList
添加引用。所以当你这样做的时候:
event.Clear();
它会影响您刚刚添加的列表(因为它是同一个对象(。所以你只处理一个列表。因此,当您完成后,您的eventList最终会有三个对相同列表的引用,该列表包含您上次清除后添加的内容。
您应该创建一个新列表,而不是event.Clear()
:event = new List<string>();