如何在C#中迭代XML并填充字典?

如何在C#中迭代XML并填充字典?,c#,xml,linq,C#,Xml,Linq,我有一个类似于以下内容的XML: <Account> <Personal> <Name>TestName</name> <address>TestAddress</Address> </personal> <details> <House> <Foundation> <Severity>0&

我有一个类似于以下内容的XML:

<Account>
  <Personal>
    <Name>TestName</name>
    <address>TestAddress</Address>
  </personal>
  <details>
    <House>
        <Foundation>
            <Severity>0</Severity>
        </Foundation>
        <StepsFront>
            <Severity>-1</Severity>
        </StepsFront>
        <StepsRear>
            <Severity>-1</Severity>
        </StepsRear>
        <StepsSide>
            <Severity>-1</Severity>
        </StepsSide>
        <PorchFront>
            <Severity>0</Severity>
        </PorchFront>
    </House>

  </details>
</Account>
我尝试过几种方法,将LINQ to XML与XDocument和XElement一起使用,但我所用的方法都没有给我任何帮助。

您可以使用以下方法:

字典严重性=
文件继承人(“房屋”).First()
.Elements().ToDictionary(
e=>e.Name.ToString(),
e=>int.Parse(e.Element(“Severity”).Value);

请添加一些解释。
Foundation 0    
StepsFront 3    
StepsRear  1    
StepsSide  3    
PorchFront 2
XDocument document;
...
var house = document.Elements("House").First();
house.Elements().ToDictionary(e => e.Name, e => e.Element("Severity").Value);
Dictionary<string, int> severities =
    doc.Descendants("House").First()
    .Elements().ToDictionary(
        e => e.Name.ToString(),
        e => int.Parse(e.Element("Severity").Value));