如何在c#中解析CSV
本文关键字:CSV | 更新日期: 2023-09-27 18:02:45
我有一些点坐标如下:
-123.118069008,49.2761419674,0 -123.116802056,49.2752350159,0 -123.115385004,49.2743520328,0 -123.114912944,49.2738039982,..............-123.118069008, 49.2761419674, 0
你能告诉我如何使用c#创建这样的东西吗:
new google.maps.LatLng(-123.118069008,49.2761419674),
new google.maps.LatLng(-123.116802056,49.2752350159),
.....
new google.maps.LatLng(-123.118069008,49.2761419674)];
如你所见,我需要:
- 添加"new google.maps.LatLng()," 从-123.118069008,49.2761419674,0中删除0
- 解析它直到最后一行以; 结束
谢谢
这是我所知道的最简单的方法…
var txt = "-123.118069008,49.2761419674,0 -123.116802056,49.2752350159,0 -123.115385004,49.2743520328,0";
var output = new StringBuilder();
foreach (var group in txt.Split(' '))
{
var parts = group.Split(',');
var lat = double.Parse(parts[0]);
var lng = double.Parse(parts[1]);
if (output.Length > 0)
output.AppendLine(",");
output.Append("new google.maps.LatLng("+lat+","+lng+")");
}
MessageBox.Show("["+output+"]");
结果是…
[新google.maps.LatLng (-123.118069008, 49.2761419674),
新google.maps.LatLng (-123.116802056, 49.2752350159),
新google.maps.LatLng (-123.115385004, 49.2743520328)]
未经测试,未编译,但这应该可以让您开始
var items = data.Split(',');
for(int i = 0; i < items.Length; i = i + 2)
{
var lat = int.Parse(items[i].Replace("0-","-"));
var lng = int.Parse(items[i+1]);
}
你会想要做数组边界检查,等等,希望这仍然有帮助。