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

本文关键字: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>();