C#:用 CSV 中的单列填充组合框

问题描述

我有一个包含多个列的 csv 文件,“项目名称”,“项目构建”。我正在尝试仅使用项目名称列填充组合框。

项目名称列可能有多个重复名称,但重复名称应仅在组合框中出现一次作为选择选项。例如:在第 1 列的“项目名称”下,Toyota 被列出 4 次,Honda 被列出 8 次。 ComboBox 将包含 2 个东西,Toyota 和 Honda。

这是我目前的代码

// Wehn 表单加载___________________________________________________________________________________________________

    public void OnLoad(object sender,RoutedEventArgs e)
    {
        StreamReader sr = new StreamReader(path);
        string column = sr.ReadToEnd();
        string[] eachColumn = column.Split(',');

        foreach (string s in eachColumn)
        {
            
            Project_Name_ComboBox.Items.Add(s);
        }
    }

当前代码为我提供了在组合框下列出的由“,”分隔的整个 csv 内容(行和列)。 :(。任何帮助都是apricated。

解决方法

您必须从 csv 中分离出行和列,并像下面那样单独存储您需要的任何内容。

  public void OnLoad(object sender,RoutedEventArgs e)
    {
        StreamReader sr = new StreamReader(path);
        List<string> ProjectNames = new List<string>();
        int lineNumber = 1;
        while (!sr.EndOfStream)
        {
            var EachRow = sr.ReadLine();
            var Columns= EachRow.Split(',');
            if(lineNumber != 1){
            ProjectNames.Add(Columns[0]);           
            }
             lineNumber++;                
        }
       ProjectNames = ProjectNames.Distinct().ToList();
       foreach(var projectName in ProjectNames){
         Project_Name_Combobox.Items.Add(projectName);
       }                            
    }      

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...