私が直面している状況は、Linq を使用して XML ドキュメントをオブジェクトに解析することです。解析中に、値の解析に進む前に、要素が null でないことを確認しています。このステートメントを単純化する方法はありますか?
var variable = (from x in xdoc.Descendants("Root")
select new AccountingResponse
{
NetCharge = x.Element("Charges") != null && x.Element("Charges").Element("NetCharge") != null ? x.Element("Charges").Element("NetCharge").Value : "0",
TotalCharge = x.Element("Charges") != null && x.Element("Charges").Element("TotalCharge") != null ? x.Element("Charges").Element("TotalCharge").Value : "0"
}).SingleOrDefault();
要約すると、各行にノードが存在するかどうかを引き続き確認する必要はありません。解析の前にノードが存在するかどうかをテストできることはわかっていますが、AccountingResponse を作成するために解析する必要がある他のデータがある可能性があるため、一度に XML の一部のみを解析する if ステートメントは避けたいと考えています。
あるいは、私はこれを完全に間違ってやっているのかもしれません。もっと良い方法があります!