使用linq将xml文件加载到2d矩形数组中

时间:2014-02-04 13:46:51

标签: c# xml arrays linq

我目前正在使用锯齿状数组:private double[][] array;并且我像这样加载数组。

加载锯齿状数组

XDocument doc = XDocument.Load("file.Xml");
array = doc.Root.Elements("Month").Select(month => month.Elements().Select(x => (double)x).ToArray()).ToArray();

所以现在我的问题是我需要获得内部数组的长度并且因为我不可能,所以我需要在矩形数组private double[,] array;中加载xml但是使用linq我不需要知道如何。

XML看起来

<document>
  <Month>
    <Depth>-0.25</Depth>
    <October>0.95</October>
    <November>-0.90</November>
    ...
  </Month>
  <Month>
    <Depth>-0.5</Depth>
    <October>0.47</October>
    <November>-0.17</November>
    ...
  </Month>
  ...
</document>

1 个答案:

答案 0 :(得分:2)

double[][] array = 
   doc.Root.Elements("Month")
      .Select(month => month.Elements().Select(x => (double)x).ToArray())
      .ToArray();

foreach(var innerArray in array)
    Console.WriteLine(innerArray.Length); // you can get length of inner array