C# 校对每行.CSV

C# 校对每行.CSV,c#,csv,file.readalllines,C#,Csv,File.readalllines,CSVHelper和FileHelper不是一个选项 我有一个.csv导出,我需要检查其结构的一致性,如下所示 引用、日期、条目ID ABC123,08/09/2015123 ABD234,08/09/2015124 XYZ987,07/09/2015125 QWE456,2016年9月8日,126 我可以使用ReadLine或reallalllines和.Split来获得整行/整列,但我需要选择每一行,然后通过每个属性(以“,”分隔)进行格式检查 我在这里遇到了问题。对于此检查,我无法在一行中

CSVHelper和FileHelper不是一个选项

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

引用、日期、条目ID

ABC123,08/09/2015123

ABD234,08/09/2015124

XYZ987,07/09/2015125

QWE456,2016年9月8日,126

我可以使用
ReadLine
reallalllines
.Split
来获得整行/整列,但我需要选择每一行,然后通过每个属性(以“,”分隔)进行格式检查

我在这里遇到了问题。对于此检查,我无法在一行中挑出每个值。 它可能是一件简单的事情

 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));
        }
    }
}
或者我走错了路,我的搜索涉及到提取特定的行或列(而不是检查关联的单个值)

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

我无法在一行中挑出每个值

这是因为您在
\n
上拆分了两次。行中的值用逗号分隔(

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

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

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

而不是通过OLEDB对象将其作为文本读取,所以CSV文件的数据将进入datatable,您无需将其吐出

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

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


如果您试图获取数组中的每个单元格值,可以使用CSVHelper。抱歉,我一开始就有,但意识到它可能会在文本中丢失。我不能使用cvsHelper或FileHelper。没有许可证你想证明什么?csv是否包含您在此处突出显示的特定值,或者根据您的ex,第二列是否始终为DateTime类型,第三列是否为Number类型等等?因此,您正在尝试查找csv的最后一行是否为斜体?我开玩笑说,当然了,但不清楚你到底想验证什么,一个通用的解决方案可能会更加混乱。请注意,尽管看起来很简单,CSV根本不是一种简单的(或定义良好的)格式,但当我交换“CSV”时,我仍然会得到与我所说的相同的结果,LINQ的所有内容都很难遵循。只要写一个很好的循环,如果你喜欢,就把它挂起来。您不需要使用LINQ。什么是“相同的结果”?var值=line.Split或line.Split?但是您需要访问许可证。
System.Data.DataTable