StreamReader 到多个列表框

StreamReader to multiple listboxes

我正在尝试使用 StreamReader 将文本文件中的数据分解为多个列表框。到目前为止,我已经能够将所有数据放入 one 列表框,但我的项目的下一步需要拆分数据,我认为我比数组更了解列表框。我已经努力寻找类似的问题,但因为我是初学者,所以我发现的大部分问题都让我更加困惑。我只能成功完成以下任务:

StreamReader file = new StreamReader(openFileDialog1.FileName);
string data;
while (!file.EndOfStream)
{
    data = file.ReadLine();
    listBox1.Items.Add(data);
}
file.Close();

我的 .txt 文件中的数据以三个为一组,如下所示:

blue
david
8042
red
joseph
7042

我无法更改数据格式,所以我一直在尝试以

的方式进行编码
if (blue)
    listBox1.Items.Add(david);
    listBox2.Items.Add(8042);
else if (red)
    listBox3.Items.Add(joseph);
    listBox4.Items.Add(7042);

等我只有两种颜色可供使用,但每种颜色都有大量数据。我的问题是我是编码新手,未能将我学到的基础知识落实到位。

我在 StreamReads 时向列表框下方 添加一行时缺少哪些代码行?我需要使用

int counter = 0;

然后将其增加 1 或 2 以获得这些线条,还是我想得太简单了?

非常感谢您的帮助。我觉得我错过了一些我还没有掌握的非常简单的东西。

一种可能的出路是通过三行(即整个块)而不是一个[=16]来读取=]:

  using (StreamReader file = new StreamReader(openFileDialog1.FileName)) {
    while (!file.EndOfStream) {
      string color = file.ReadLine();
      string name = file.ReadLine();
      string number = file.ReadLine();

      if (color == "blue") {
        listBox1.Items.Add(name);
        listBox2.Items.Add(number);
      }
      else if (color == "red") {
        listBox3.Items.Add(name);
        listBox4.Items.Add(number);
      }
    }  
  }