所以我有这个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>
我已经搜索了一下,我看到了一些方法来使用linq但只使用一维数组,因为我最终想要的最终结果将是
Array[0,0] = -0.25
Array[0,1] = 0.95
Array[0,2] = -0.90
...
答案 0 :(得分:3)
如果您对锯齿状数组(数组数组)感到满意,那么LINQ会让它变得相当简单:
XDocument doc = XDocument.Load(...);
var array = doc.Root
.Elements("Month")
.Select(month => month.Elements().Select(x => (double) x).ToArray())
.ToArray();
如果你需要一个矩形阵列,那就太麻烦了。
就个人而言,我实际上会构建一个包含Depth
,October
和November
属性的自定义类型,而不是依赖于Month
中元素的顺序,但这是一个不同的事情。
请注意,上面对double
的强制转换(可能是?)会失败,因为更多的传统XML会使用.
而不是,
。但是,如果失败,您可以使用double.Parse(x.Value, someAppropriateCulture)
代替。