使用linq从xml加载1D数组



我搜索了一些,但没有找到任何我认为合适的答案,我正在使用XDocument加载我的xml,但我在将其转换为数组时遇到了一些困难

<?xml version="1.0" encoding="UTF-8"?>
<document>
  <sNone>
    <October>3.21</October>
    <November>-5.41</November>
    <December>-15.81</December>
    <January>-21.69</January>
    <February>-21.70</February>
    <March>-12.60</March>
    <April>-6.41</April>
    <May>-0.06</May>
    <June>5.42</June>
    <July>13.32</July>
    <August>14.12</August>
    <September>7.55</September>
  </sNone>
  <sLichen>
    <October>1.99</October>
    ...
</sLichen>
</document>

我正在像一样加载我的XML

XDocument doc = XDocument.Parse();

但我对如何返回1D数组感到困惑,因为我有多个子代。

编辑

我的目标是得到一个像这样的阵列

{3.21、-5.41、-15.81、-21.69、-21.70、-12.60、-6.41、-0.06、5.42、13.32、14.12、7.55}

这应该可以做到:

var doc = "<?xml version="1.0" encoding="UTF-8"?....";
XDocument xdoc = XDocument.Parse(doc);
var items = xdoc.Root.Elements("sNone").Descendants().Select(d => d.Value).ToArray();
Console.WriteLine(items);

或者如果你想要小数:

var items2 = xdoc.Root.Elements("sNone").Descendants().Select(d => decimal.Parse(d.Value)).ToArray();

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新