0

ほとんどの場合、アイテムに「クレジット」ノードがあるrssフィードを読んでいます。場合によっては存在しませんが、オブジェクトが例外を設定しないようにするにはどうすればよいですか?私はc#でlinqを使用してこのように読んでいます

Credit = (string)item.Element(media + "credit").Value == null ? string.Empty : (string)item.Element(media + "credit").Value,
4

1 に答える 1

1

要素の値を取得する前に、要素が null でないかどうかを確認する必要があります。

var creditElement = item.Element(media + "credit");
Credit = (creditElement == null) ? string.Empty : (string)creditElement.Value;

しかし、Linq は十分にスマートです。要素の値を明示的に文字列にキャストし、欠落している要素を null として扱うことができます。したがって、要素を文字列に変換し、null 合体演算子を使用してデフォルト値を割り当てることができます。

Credit = (string)item.Element(media + "credit") ?? String.Empty;
于 2012-12-16T18:34:41.607 に答える