编辑:
我有以下代码:
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。
当第一行包含第一列中的Date而第二列中包含Value(使用texteditor打开)时,它会失败:
“日期”, “值”
“20.04.2010”; “82.6619508214314”
“21.04.2010”; “33.2262968571519”
“2010年4月22日”; “25.0174973120814”
答案 0 :(得分:6)
为什么不首先阅读一行,不做任何事情?
using (var reader = new System.IO.StreamReader(dir))
{
reader.ReadLine(); // skip first
string line;
while ((line = reader.ReadLine()) != null)
{
}
}
答案 1 :(得分:1)
在执行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
{
}
}
}