C# 使用linq将xml文件加载到二维矩形数组中

C# 使用linq将xml文件加载到二维矩形数组中,c#,xml,arrays,linq,C#,Xml,Arrays,Linq,我目前使用的是锯齿状数组:private double[][]数组然后我像这样加载数组 加载锯齿阵列 XDocument doc = XDocument.Load("file.Xml"); array = doc.Root.Elements("Month").Select(month => month.Elements().Select(x => (double)x).ToArray()).ToArray(); 所以现在我的问题是我需要得到内部数组的长度,正如我读到的,这是不可能的

我目前使用的是锯齿状数组:
private double[][]数组然后我像这样加载数组

加载锯齿阵列

XDocument doc = XDocument.Load("file.Xml");
array = doc.Root.Elements("Month").Select(month => month.Elements().Select(x => (double)x).ToArray()).ToArray();
所以现在我的问题是我需要得到内部数组的长度,正如我读到的,这是不可能的,所以我需要在一个矩形数组
private double[,]数组中加载xml
XML看起来像


-0.25
0.95
-0.90
...
-0.5
0.47
-0.17
...
...

为什么不可能获取内部数组的长度?Linq是一个要求吗?我在尝试获取长度(1)时遇到了一个异常,我在这里读到了,我想这是最后一个post@C.Evenhuis嗯,它需要很快,因为这是一个事件,我知道林克做得很好,但不是,这不是一项要求,没有必要将其存储在阵列中。我不能允许进行foreach,因为它会在mousemove上调用,而且如果用户移动到阵列中,它会不断被调用canva@Mokmeuh对不起,我没抓住你。你能解释一下foreach有什么问题吗?你到底想从
数组中得到什么?抱歉,如果我不清楚,让我再试一次,我的意思是,每次鼠标移动时都会调用foreach,因此需要很多资源,并且长度是像这样的三元条件所需要的,
数组[yCurrent>=array.GetLength(1)?11:yCurrent][xCurrent>=array.GetLength(0)?12:xCurrent]
但我无法获取Dimension 1的长度,因为它不存在,因为它不是矩形array@Mokmeuh您不必枚举
数组
。这只是访问内部数组长度的一个示例。您可以通过访问索引
数组[0]来执行相同的操作.Length
-这将为您提供第一个内部数组的长度…我是dumb xD,让我试试这个,它工作正常,好吧,谢谢,我想我问错了问题
<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>
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