【问题标题】:StreamReader to multiple listboxesStreamReader 到多个列表框
【发布时间】:2017-04-09 18:08:22
【问题描述】:

我正在尝试使用 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 时将一行 below 添加到列表框时,我缺少哪些代码行?我需要使用一个

int counter = 0;

然后将其增加 1 或 2 以获得这些行,还是我想的太基本了?

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

【问题讨论】:

    标签: c# listbox streamreader


    【解决方案1】:

    一种可能的方法是通过三行(即整个块)而不是一个来读取:

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

    【讨论】:

    • 谢谢你,德米特里!你向我展示了我所缺少的东西。
    猜你喜欢
    • 2016-06-09
    • 2020-09-13
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多