大家好日子,我希望你们都快乐健康。)
我的问题如下:
我首先在我的主要枚举中加入一堆XElement(航路点):
IEnumerable waypoints = file.Descendants(“Waypoints”)。First()。Elements();
然后我开始按如下方式迭代它们:
foreach (XElement el in waypoints)
{
try
{
//ok so this should be one element here..
Waypoint tempWP =
new Waypoint((el.Attribute("X") != null ? Convert.ToSingle(el.Attribute("X").Value) : 0.0F),
(el.Attribute("Y") != null ? Convert.ToSingle(el.Attribute("Y").Value) : 0.0F),
(el.Attribute("Z") != null ? Convert.ToSingle(el.Attribute("Z").Value) : 0.0F),
(el.Attribute("Zone") != null ? Convert.ToUInt64(el.Attribute("Zone").Value) : 0),
(el.Attribute("Type") != null ? el.Attribute("Type").Value : ""),
(el.Attribute("SafeRadius") != null ? Convert.ToUInt32("SafeRadius") : 0),
(el.Attribute("Guid") != null ? Convert.ToUInt64("Guid") : 0));
ret.Add(tempWP);
}
catch (Exception)
{
}
}
从我的调试中,我知道el = Waypoint X =“1032.91858”Y =“ - 3671.47949”Z =“35.0046425”Zone =“111”Type =“none”SafeRadius =“1”Guid =“111”/
所以XElement会好起来的。正如你所看到的,我试图将X / Y / Z转换为单曲,Zone转换为UInt64 ......等等,然后我希望将它们添加到返回的航点列表中。
但是,每次我的foreach运行时,都会遇到异常......“输入字符串的格式不正确。”有谁知道为什么会这样?我相信我的空检查和转换应该是正确的,不是吗?
非常感谢您的帮助。 :)
答案 0 :(得分:1)
您尝试转换为数字类型的值之一是空字符串或包含字母。