证明阅读。每行CSV

时间:2015-09-08 10:13:09

标签: c# csv file.readalllines

CSVHelper和FileHelper不是选项

我有一个.csv导出,我需要检查一致性,如下所示

  

参考,日期的EntryID

     

ABC123,08 / 09 / 2015,123

     

ABD234,08 / 09 / 2015,124

     

XYZ987,07 / 09 / 2015,125

     

QWE456, 2016年8月9日 下,126

我可以使用ReadLineRealAllLines.Split给我整行/列但是我需要选择每一行然后浏览每个属性(以&#39分隔) ;,')用于格式检查

我遇到了问题。我不能单独列出这项检查的每一个值。

可能是一件简单的事情
 class Program
{
    static void Main(string[] args)
    {
        string csvFile = @"proof.csv";
        string[] lines = File.ReadAllLines(csvFile);


        var values = lines.Skip(1).Select(l => new { FirstRow = l.Split('\n').First(), Values = l.Split('\n').Select(v => int.Parse(v)) });
        foreach (var value in values)
        {
            Console.WriteLine(string.Format("{0}", value.FirstRow));
        }
    }
}

或者我走错了路,我的搜索涉及拉特定的行或列(而不是检查相关的各个值)

上面数据的示例有一个突出显示的例子:日期是明年,我希望能够证明该值(只是一个例子,因为它可能出现在错误出现的任一列)

2 个答案:

答案 0 :(得分:2)

  

我不能连续挑出每一个值

那是因为你在\n分裂了两次。行中的值以逗号(,)分隔。

我不确定LINQ应该做什么,但它很简单:

string[] lines = File.ReadAllLines(csvFile);

foreach (var line in lines.Skip(1))
{
    var values = line.Split(',');
    // access values[0], values[1] ...
}

答案 1 :(得分:0)

不是将其作为文本读取而是通过OLEDB对象读取它,因此CSV文件的数据将以数据表形式出现,您无需吐出它。

要读取csv文件,您可以使用OLEDB的这些对象

System.Data.OleDb.OleDbCommand 
System.Data.OleDb.OleDbDataAdapter
System.Data.OleDb.OleDbConnection

System.Data.DataTable