0

我已经编写了代码来对.csv文件进行排序。我现在需要的是只读取具有有序值的行并将它们写入 datagridview。例如,只读取 Age 值为 22 的行。文件如下所示:

 ID Name Surname Age Salary
 -------------------------- 
 1  John Asben   33  1000
 2  Adam Smith   22  1200
 3  Amanda J     22  2000
 4  George Villis 36  2300

我的问题在于过滤数据,例如,当我单击按钮按年龄显示员工和年龄类型为 22 时,程序必须在 datagridview 中仅显示列年龄值为 22 的记录(行)。我尝试了一个代码,但它显示错误:

输入字符串的格式不正确

我认为是因为第一行数据类型与其他行不同。

我的代码如下所示:

private void btnAge_Click(object sender, EventArgs e)
{
        List<string[]> parsedData = ReadAndSelectdata(@"C:\sorteddata.csv", ',');

        int age;

        if (txtage.Text != "")
        {
            age = int.Parse(txtage.Text);
            DrawDataGridView(parsedData.Where(p => (p[3] == "Age") || (int.Parse(p[3]) == age)).ToList());
        }
        else
            MessageBox.Show("Please type the age for Employee");
}
4

1 回答 1

0

在我看来,您应该创建一个名为 Employee 的类

    class Employee
    {
       public int ID {get;set;}
       public string Name {get;set;}
       public string Surname {get;set;}
       public int Age {get;set;}
       public int Salary {get;set;}
     }

更改 ReadAndSelectData 方法以返回 aList<Employee> 然后您需要做的就是

if(!string.IsNullOrEmpty(txtage.Text))
{
   DrawDataGridView(parsedData.Where(p=>p.Age == int.parse(txtage.Text));
}
else
{.....}
于 2013-06-02T02:41:11.363 回答