CSVHelper和FileHelper不是选项
我有一个.csv导出,我需要检查一致性,如下所示
参考,日期的EntryID
ABC123,08 / 09 / 2015,123
ABD234,08 / 09 / 2015,124
XYZ987,07 / 09 / 2015,125
QWE456, 2016年8月9日 下,126
我可以使用ReadLine
或RealAllLines
和.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));
}
}
}
或者我走错了路,我的搜索涉及拉特定的行或列(而不是检查相关的各个值)
上面数据的示例有一个突出显示的例子:日期是明年,我希望能够证明该值(只是一个例子,因为它可能出现在错误出现的任一列)
答案 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