C# 填充列表框

C# 填充列表框,c#,C#,有一个文件具有这样的结构: 公司名称1;短名1;识别1;01.01.1980 公司名称2;短名2;识别2;01.01.1987 公司名称3;短名3;识别3;01.01.1990 公司名称4;短名4;识别4;23.01.1995 我想把所有的“companynameX”放到listbox1中,当单击每个项目时,相关的“identificationX”将显示在文本框中。 我非常愚蠢,对于这个简单的任务,我使用了DataTable。它不工作,listbox用一个项目填充,textbox用这个“Syst

有一个文件具有这样的结构:

公司名称1;短名1;识别1;01.01.1980 公司名称2;短名2;识别2;01.01.1987 公司名称3;短名3;识别3;01.01.1990 公司名称4;短名4;识别4;23.01.1995

我想把所有的“companynameX”放到listbox1中,当单击每个项目时,相关的“identificationX”将显示在文本框中。 我非常愚蠢,对于这个简单的任务,我使用了DataTable。它不工作,listbox用一个项目填充,textbox用这个“System.Data.DataRowView”填充。为什么它不起作用,以及如何以更优雅的方式完成我的任务

foreach (string line in File.ReadAllLines(@"D:\file.txt"))
{
    string[] parts = line.Split(';');

    DataSet ds = new DataSet();
    DataTable dt = new DataTable("dt");
    DataColumn dc;
    DataRow dr;
    dc = new DataColumn();
    dc.DataType = System.Type.GetType("System.String");
    dc.ColumnName = "First";
    dt.Columns.Add(dc);

    dc = new DataColumn();
    dc.DataType = System.Type.GetType("System.String");
    dc.ColumnName = "Second";
    dt.Columns.Add(dc);

    ds.Tables.Add(dt);
    for (int j = 2; j < parts.Length; j += 4)
    {
         for (int k = 0; k < parts.Length; k += 4)
         {
              dr = dt.NewRow();
              dr["First"] = parts[j];
              dt.Rows.Add(dr);

              dr = dt.NewRow();
              dr["Second"] = parts[k];
              dt.Rows.Add(dr);
          }
    }

    listBox1.DataSource = dt;
    listBox1.DisplayMember = "First";
    listBox1.ValueMember = "Second";
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
            string value = listBox1.SelectedItem.ToString();
            textBox1.Text = value;
}
foreach(File.ReadAllLines(@“D:\File.txt”)中的字符串行)
{
string[]parts=line.Split(“;”);
数据集ds=新数据集();
数据表dt=新数据表(“dt”);
数据列dc;
数据行dr;
dc=新数据列();
dc.DataType=System.Type.GetType(“System.String”);
dc.ColumnName=“第一”;
dt.Columns.Add(dc);
dc=新数据列();
dc.DataType=System.Type.GetType(“System.String”);
dc.ColumnName=“第二”;
dt.Columns.Add(dc);
ds.Tables.Add(dt);
对于(int j=2;j
var records = from line in File.ReadAllLines(@"D:\file.txt")
              let parts = line.Split(';')
              select new 
              {
                  Company = parts[0],
                  Identification = parts[2]
              };
listBox1.DataSource = records;
listBox1.DisplayMember = "Company";
listBox1.ValueMember = "Identification";