C#CSV文件:如何在使用datatable读取CSV文件时跳过几列

C#CSV文件:如何在使用datatable读取CSV文件时跳过几列,c#,csv,datatable,C#,Csv,Datatable,在使用datatable读取csv时,我需要跳过一些条件列。 例如:我的csv文件的标题有Emp\u Id、Emp\u Name、Dept、Role、Addree和Salary。我想在读取csv文件时跳过Emp_Name和Role列并导入其余内容 Emp\u idEmp\u名称部门角色地址工资 我正在使用以下代码读取csv文件,无需跳过任何列,但现在我想跳过一些列: List LISTOCOL=新列表(); DataTable dt=新的DataTable() 用于(int i=1;i您可以输入

在使用datatable读取csv时,我需要跳过一些条件列。 例如:我的csv文件的标题有
Emp\u Id、Emp\u Name、Dept、Role、Addree和Salary
。我想在读取csv文件时跳过
Emp_Name
Role
列并导入其余内容

Emp\u idEmp\u名称部门角色地址工资

我正在使用以下代码读取csv文件,无需跳过任何列,但现在我想跳过一些列: List LISTOCOL=新列表(); DataTable dt=新的DataTable()


用于(int i=1;i您可以输入您正在使用的示例代码,以便我们更好地提供帮助。最简单的方法是,您读取csv文件的每一行,然后用分隔符将其拆分,该分隔符返回一个项目数组,然后您可以按索引选择要添加到数据表中的代码。

您可以输入您正在使用的示例代码,以便我们能够帮助您完成数据表的创建吗t更好。粗略的方法是,读取csv文件的每一行时,用分隔符将其拆分,该分隔符返回一个项目数组,然后按索引选择要添加到datatable中。

这取决于您已在构建datatable的方式

您可以尝试NuGet package csvHelper

还有一个类似于这样的类定义

public class Foo {
    public int Id { get; set; }
    public string Name { get; set; }
}
如果我们的类属性名称与CSV文件头名称匹配,我们可以在不进行任何配置的情况下读取该文件

using (var reader = new StreamReader("path\\to\\file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) {
    var records = csv.GetRecords<Foo>();
}

谢谢

这取决于您已经如何构建数据表

您可以尝试NuGet package csvHelper

还有一个类似于这样的类定义

public class Foo {
    public int Id { get; set; }
    public string Name { get; set; }
}
如果我们的类属性名称与CSV文件头名称匹配,我们可以在不进行任何配置的情况下读取该文件

using (var reader = new StreamReader("path\\to\\file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) {
    var records = csv.GetRecords<Foo>();
}

谢谢

您当前如何读取文件?所谓“跳过”是指您希望避免将这些列/字段加载到
数据表中,而不是在加载所有数据后删除这些列?当前我正在读取所有标题(列)没有任何过滤。是的,我希望避免将这些列加载到datatable中。是的,但您是如何做到的?您是自己解析文件还是使用库?如果您提供了代码,以便答案可以告诉您如何修改或改进它,那将非常有帮助。您当前如何读取文件?通过“跳过”您的意思是要避免将这些列/字段加载到
数据表中,而不是在加载所有数据后删除这些列?目前我正在读取所有标题(列)没有任何过滤。是的,我希望避免将这些列加载到datatable中。是的,但您是如何做到的?您是自己解析文件还是使用库?如果您提供了代码,以便答案可以告诉您如何修改或改进它,这将非常有帮助。