我编写了代码来对.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
我的问题在于过滤数据,例如当我单击按钮显示Employee按年龄而类型22为Age时,程序必须在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");
}
答案 0 :(得分: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方法以返回List<Employee>
然后你需要做的就是
if(!string.IsNullOrEmpty(txtage.Text))
{
DrawDataGridView(parsedData.Where(p=>p.Age == int.parse(txtage.Text));
}
else
{.....}