C# 从StreamReader读取时,如何跳过csv数据中的标题?
编辑: 我有以下代码:C# 从StreamReader读取时,如何跳过csv数据中的标题?,c#,csv,C#,Csv,编辑: 我有以下代码: private void button1_Click_1(object sender, EventArgs e) { var date = new List<String>(); var value = new List<Double>(); string dir = @"C:\Main\test.csv"; using (var reader = new System.IO.StreamReader(dir))
private void button1_Click_1(object sender, EventArgs e)
{
var date = new List<String>();
var value = new List<Double>();
string dir = @"C:\Main\test.csv";
using (var reader = new System.IO.StreamReader(dir))
{
var lines = File.ReadLines(dir)
.Skip(1);//Ignore the first line
foreach (var line in lines)
{
var fields = line.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
date.Add(fields[0]);
if (fields.Length > 1)
value.Add(Convert.ToDouble(fields[1]));
}
String[] _date = date.ToArray();
Double[] _value = value.ToArray();
chart1.Series["Test"].Points.DataBindXY(_date,_value);
chart1.Series["Test"].ChartType = SeriesChartType.Spline;
}
}
现在我想跳过csv数据的标题。这意味着第一列的第一行和第二列的第一行。怎么做
标题是字符串。当没有标题时,他将跳过第一行,但对于标题,我会得到一个System.FormatException
当第一行第一列包含日期,第二列包含值(如使用texteditor打开的值)时失败:
日期;价值观
2010年4月20日;82.6619508214314
2010年4月21日;33.2262968571519
2010年4月22日;25.0174973120814
为什么不从读一行开始,什么也不做呢
using (var reader = new System.IO.StreamReader(dir))
{
reader.ReadLine(); // skip first
string line;
while ((line = reader.ReadLine()) != null)
{
}
}
为什么不从读一行开始,什么也不做呢
using (var reader = new System.IO.StreamReader(dir))
{
reader.ReadLine(); // skip first
string line;
while ((line = reader.ReadLine()) != null)
{
}
}
在执行while循环之前添加一个reader.ReadLine
using (var reader = new System.IO.StreamReader(dir))
{
if (reader.ReadLine()) //read first line
{
string line;
while ((line = reader.ReadLine()) != null) //read following lines
{
}
}
}
在执行while循环之前添加一个reader.ReadLine
using (var reader = new System.IO.StreamReader(dir))
{
if (reader.ReadLine()) //read first line
{
string line;
while ((line = reader.ReadLine()) != null) //read following lines
{
}
}
}
这意味着第一列的第一行和第二列的第一行。所以第一排,;在while循环之前,只需添加reader.readline,即第一列的第一行和第二列的第一行。所以第一排,;在您的while循环之前,只需添加reader.readline当其中有字符串时,为什么他不想跳过该行?问题应该是第二列,因为它会转换为double,否则会work@uzi42tmp:能否在帖子中显示失败的示例文档?第一行-第一列为日期,第一行第二列为Value@uzi42tmp:好的,他们被引用了。然后执行字段[0]。修剪“\”和字段[1].Trim“\”。我明天可以试试,然后我回答为什么他不想在有字符串的情况下跳过这一行,问题应该是第二列,因为它被转换为double-否则会work@uzi42tmp:能否在帖子中显示失败的示例文档?第一行-第一列为日期,第一行第二列为Value@uzi42tmp:好的,他们被引用了。然后执行字段[0]。修剪“\”和字段[1]。修剪“\”。我明天可以试试,然后回答