私はXMLファイルからデータをインポートして順番に並べ替えようとしていますが、実行するとオブジェクト参照がオブジェクトのインスタンスに設定されません。ここでは、使用しているコードのスニペットです。XMLをインポートするときにnullとは何ですか?
XElement data = XElement.Load("blockData.xml");
var sortedElements =
from c in data.Element("BLOCKS").Elements("BLOCK")
orderby (string)c.Element("X") descending,
(string)c.Element("Y") descending,
(string)c.Element("Z") descending
select new
{
name1 = (string)c.Element("NAME"),
X1 = (string)c.Element("X"),
Y1 = (string)c.Element("Y"),
Z1 = (string)c.Element("Z")
};
foreach (var r in sortedElements)
Console.WriteLine("X:{0} Y:{1} Z:{2} Name:{3}",
r.X1, r.Y1, r.Z1, r.name1);
そして、XMLファイルに含まれているもののサンプル
<BLOCKS>
<BLOCK>
<NAME>B1</NAME>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</BLOCK>
</BLOCKS>
XMLファイルにルート要素を追加すると、私はLINQのプロではないけど、あなたは子孫の代わりの要素を試してみましたか? – Machinarius
どの行に例外がスローされますか?あなたのforeach-loopの中にあれば、単に(r!= null){console.writeln ...} –
をチェックすることができます。 var sortedElementsがnull参照例外をスローしているようです。 – Peter