需要用文本文件中每行的第一个索引填充我的列表框

时间:2018-12-08 21:31:34

标签: c# arrays text listbox duplicates

一开始我似乎很容易完成任务。 我试图用文本文件中每行的第一个索引填充listbox。这是我的代码,我现在得到的是第一行的第一个索引重复了6次。

int Counter = 0;
StreamReader supReader = new StreamReader(@"data\Suppliers.txt", true);
while (!supReader.EndOfStream)
{
     string line = supReader.ReadLine();
     string[] tokens = line.Split(new char[] { ',' }, StringSplitOptions.None);
     foreach (string s in tokens)
     {
          if (listsup.Items.Contains(tokens) == false)
          {
                listsup.Items.Add(tokens[0]);
                Counter++;
          }

      }

}
supReader.Close();

任何帮助将不胜感激,谢谢

1 个答案:

答案 0 :(得分:0)

好吧,为了使整个工作正常进行,我将代码更改为更实用的方法:

Supfile = System.AppDomain.CurrentDomain.BaseDirectory + "data\\Suppliers.txt";

        try
        {
            StreamReader inputFile;
            inputFile = File.OpenText(Supfile);

            string lines;

            while (!inputFile.EndOfStream)
            {
                lines = inputFile.ReadLine();
                string[] tokens = lines.Split(',');
                if (!listsup.Items.Contains(tokens))
                {
                    listsup.Items.Add(tokens[0]);
                }
                else { listsup.Update(); }
            }
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

这很完美,必须在顶部添加listsup.Items.Clear();,以确保它不会与列表框中的列表重复。