XMLデータセットに対してlinqクエリを実行していますが、これを実行するとNullReferenceExceptionが生成されます。linq NullReferenceException質問
XDocument dataDoc = XDocument.Load(new StringReader(e.Result));
var Genres = from genre in dataDoc.Descendants("genres")
where (!genre.Element("ID").IsEmpty)
select (string)genre.Element("id").Value + ',' + (string)genre.Attribute("name").Value + ',' + (string)genre.Attribute("url").Value;
foreach (string myGenre in Genres)
{
}
実行されると、LINQクエリが正常に動作するが、コードは、foreachループを反復処理しようとすると、とNullReferenceExceptionが発生します。
<genres>
<translated>true</translated>
<genre name="1">
<id>28</id>
<url>http://url1</url>
</genre>
<genre name="2">
<id>12</id>
<url>http://url2</url>
</genre>
</genres>
は構造が異なる最初の子ノードであり、原因:
さて、私は、問題は、次のようになります。私が読んでいるXMLデータに関係していることをを考える問題? この背後にある私のクラスは問題ではありませんが、(念のため)以下の通りです:
public class Genre
{
public string ID { get; set; }
public string Name { get; set; }
public string URL { get; set; }
}
あなたの 'where'節はおそらく小文字であるべきです。 – SLaks