如何使用C#解析或读取CSV分隔的逗号,忽略空值和选定值?

时间:2017-06-05 08:12:22

标签: c# linq csv

我在解析或阅读CSV时遇到了一些问题。我想实现在CSV文件中选择所选值,因为它没有标题。然后我想将所选项目存储到数据库中。

示例数据:

Row 1: "","",John,"",28,"","", 
Row 2: "",Doe,"","USA",
Row 3: Devoper,"","","ABC Company",
Row 4: "","",10,000,"2 Years",
Row 5: "C#","LINQ","ASP.NET MVC",

我想这样选择:

Row 1: John,28
Row 2: Doe, USA
Row 3: Developer, ABC Company
Row 4: 10,000, 2 Years
Row 5: C#, LINQ, ASP.NET MVC

我们假设类结构是这样的:

public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public string Address { get; set; }
public string Position { get; set; }
public double Salary { get; set; }
public string YearWorked { get; set; }
public string Skills { get; set; }

1 个答案:

答案 0 :(得分:0)

LINQ是一个很棒的快速工具。但是像所有快速工具一样,它有限制。我通常认为解析CSV超出了这些限制。

您应该使用正确的CSV解析器。对于LINQ来说,有许多特殊情况(如Multiline字段,转义逗号)都可以实现。即使你可以,性能和内存使用仍然很糟糕。

这是我经常链接的CSV解析器。它可能是您正在寻找的机器人吗? http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader