首先,我对编码和 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]);
}
Run Code Online (Sandbox Code Playgroud)
这条线
read = data.Split(seperators, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
说:
如果有两个逗号,一个接一个,忽略该条目
因此,您的输入变为:
0000000,26.0000000,38.000000,30.01.2017,0,0,0,0,0,3,0,0,0,0
你真正想要的是这个,它在数组中留下空值
read = data.Split(seperators, StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25842 次 |
| 最近记录: |