【发布时间】:2013-09-28 23:56:40
【问题描述】:
在我的 C# 程序中,我将汽车数据从 xml 文件加载到汽车对象中。
这是我的 xml 文件:
<Car>
<CarID>1</CarID>
<CarName>Honda</CarName>
<CarColor>Blue</CarColor>
</Car>
<Car>
<CarName>Ford</CarName>
<CarColor>Yellow</CarColor>
</Car>
<Car>
<CarID>3</CarID>
<CarName>BMW</CarName>
<CarColor>Green</CarColor>
</Car>
请注意,第二个汽车入口没有 ID。所以我需要检查这个以避免空异常。
我在我的 C# 代码中加载 xml 数据,如下所示:
List<Car> Cars =
(
from el in XDocument.Load("XML_Files/cars.xml").Root.Elements("Car")
select new Car
{
CarID = (int)el.Element("CarID"),
CarName = (string)el.Element("CarName"),
CarColor = (string)el.Element("CarColor")
}).ToList();
我在另一个问题中读到,为了解决这个问题,对于字符串数据,我们将其替换为:
CarName = (string)el.Element("CarName")
用这个:
CarName = ((string)el.Element("CarName") != null) ? (string)el.Element("CarName") : string.Empty
这适用于字符串值,但我不知道如何将此逻辑应用于 int 值。
那么我该如何修改这一行:
CarID = (int)el.Element("CarID")
要测试空值吗?
这个方法我试过了,还是不行:
CarID = ((int)el.Element("CarID") >= 0) ? Convert.ToInt32(el.Element("CarID").Value) : 0
有什么建议吗?
【问题讨论】:
标签: c# xml int nullreferenceexception