为了账号安全,请及时绑定邮箱和手机立即绑定

将地理定位拆分为 XML IndexOutOfRangeException 上的经度和纬度

将地理定位拆分为 XML IndexOutOfRangeException 上的经度和纬度

C#
HUH函数 2021-06-04 05:42:04
我从数据库中动态拆分地理位置,例如 38.7890109,0.16608129999997345 到 XML 提要上的经度和纬度,我的代码在正确输入地理位置时工作正常,但是当遇到由客户端错误加载到数据库中的数据时,是一个 IndexOutOfRangeException。当我注释掉 longitude = values[1]; 在没有 IndexOutOfRangeException 的情况下对提要加载进行编码,所以让我相信当它在 geoLoc.Split(',') 上拆分地理位置时,它必须加载的数据是脏的,无法拆分导致问题的地理位置,我附上了下面的代码,非常感谢任何帮助。string geoLoc = prop.AdministrativeFields.AddressFields.Geolocation;string latitude = "";string longitude = "";if (!String.IsNullOrEmpty(geoLoc) && !String.IsNullOrWhiteSpace(geoLoc)){XmlElement lat = doc.CreateElement(String.Empty, "latitude", String.Empty);XmlElement lon = doc.CreateElement(String.Empty, "longitude", String.Empty);string[] values = geoLoc.Split(',');latitude = values[0];longitude = values[1];if (latitude.Length > 0 && longitude.Length > 0){    XmlText lati = doc.CreateTextNode(latitude);    XmlText longi = doc.CreateTextNode(longitude);    lat.AppendChild(lati);    lon.AppendChild(longi);    XmlElement coords = doc.CreateElement(String.Empty, "coordinates", String.Empty);    address.AppendChild(coords);    coords.AppendChild(lat);    coords.AppendChild(lon);}}
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

您应该string[] values = geoLoc.Split(',');在访问数组元素latitude = values[0];和之前检查该部分longitude = values[1];。


用:


if (values != null && values.Length >= 2)

{

    latitude = values[0];

    longitude = values[1];

    ...

}

如果此检查失败,您应该重新加载数据


查看完整回答
反对 回复 2021-06-05
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信