首先,我对编码非常陌生,是C#的初学者。我查看了相关问题,但没有找到我的问题或者无法理解。
我有一个.csv文件,其中行如下所示。我通过使用float longitude = float.Parse(read[1]);
获取经度值。但我还想在下面示例中获得数字“3”。据我所知,我可以通过float.Parse(read[12])
来获得该值。这个数字是该行中的第12个索引。但是我无法使用float.Parse(read[12])
获得该数字。当我使用float.Parse(read[9])
时,我可以获得3。此代码无法读取逗号之间的缺失值。如何读取包括缺失值在内的所有数据?因为其他行不同,缺失值也不同。有些行不包含日期信息,有些行不包含经度信息。
0000000,26.0000000,38.000000,30.01.2017,0,0,0,,,0,0,,3,,0,0,0,0
string[] read;
char[] seperators = { ',' };
StreamReader sr = new StreamReader("D:/xxx.csv");
string data = sr.ReadLine();
while ((data = sr.ReadLine()) != null)
{
read = data.Split(seperators,StringSplitOptions.RemoveEmptyEntries);
float longitude = float.Parse(read[1]);
float latitude = float.Parse(read[2]);
}
read[]
? - Jackyread = data.Split(seperators);
这将包括您的 CSV 输入中的空部分。 但请确保在尝试解析空字符串时不会遇到异常。 - Simon D.