C# 如何创建一个动态列表<;列表<;字符串>>;?

C# 如何创建一个动态列表<;列表<;字符串>>;?,c#,list,C#,List,我想读取文件中的一些文本。案文如下: A //// B C /// D E F //// 我想创建一个列表,用于存储数据。所以我的程序是这样的: List<string> event = new List<string>(); List<List<string>> eventList = new List<List<string>>(); System.IO.StreamReader f = new System.I

我想读取文件中的一些文本。案文如下:

A

////

B

C

///

D

E

F

////

我想创建一个
列表
,用于存储数据。所以我的程序是这样的:

 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();

 }
List事件=新建列表();
List eventList=新列表();
System.IO.StreamReader f=新的System.IO.StreamReader(“list.txt”);
字符串行=f.ReadLine();
while(line!=null&(!line.Equals(“”))
{
如果(第[0]行)。等于(“/”)
{
添加(事件);
event.Clear();
}
其他的
{
事件。添加(行);
}
line=f.ReadLine();
}
我想得到的是一个列表,其中第一个列表是A,第二个列表是B,C,第三个列表是D,E,F

但是我得到的也是一个列表列表,其中第一个列表是D,E,F,第二个列表和第三个列表都是D,E,F

有人知道如何调试它吗?

执行此操作时:

 eventList.Add(event);
event.Clear();
您没有复制
事件
列表-您将引用添加到
事件列表
。所以当你这样做的时候:

 eventList.Add(event);
event.Clear();
它会影响刚刚添加的列表(因为它是同一个对象)。因此,您只处理一个列表。因此,当您完成后,您的事件列表最终会有三个对相同的列表的引用,其中包含上次清除后添加的内容

您应该创建一个新列表,而不是
event.Clear()
event=new list()