私の 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>
2 番目の車のエントリには ID がないことに注意してください。したがって、null 例外を回避するには、これを確認する必要があります。
次のように、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")
null 値をテストするには?
私はこの方法を試しましたが、うまくいきません:
CarID = ((int)el.Element("CarID") >= 0) ? Convert.ToInt32(el.Element("CarID").Value) : 0
助言がありますか?