C# 获取整个节点XML而不是InnerXml

C# 获取整个节点XML而不是InnerXml,c#,xml,xmldocument,innerxml,C#,Xml,Xmldocument,Innerxml,给定以下XML: <Root> <Item id="1"> <name>Foo</name> <status>Active</status> </Item> <Item id="2"> <name>Bar</name> <status>Inactive</status> </Item> <

给定以下XML:

<Root>
  <Item id="1">
    <name>Foo</name>
    <status>Active</status>
  </Item>
  <Item id="2">
    <name>Bar</name>
    <status>Inactive</status>
  </Item>
</Root>
我可以很容易地获得每个节点的InnerXml,对于第一个节点,它是:

<name>Foo</name>
<status>Active</status>
Foo
活跃的
但是如何获取包含标记及其属性的节点的XML,例如:

<Item id="1">
  <name>Foo</name>
  <status>Active</status>
</Item>

福
活跃的
尝试使用而不是
InnerXml

foreach (XmlNode node in nodes)
{
   var nodeXml = node.OuterXml;
}

我不明白为什么我不能在我的foreach循环(InnerXml/OuterXml)中访问这些属性中的任何一个。只要我在循环声明中显式地将XmlNode设置为类型,就可以按预期工作。非常感谢。
XmlNodeList
实现了
IEnumerable
,而不是
IEnumerable
,因此,如果在
foreach
循环中使用
var
,循环变量将被视为
对象,因为编译器无法检测到它是更具体的类型。
foreach (XmlNode node in nodes)
{
   var nodeXml = node.OuterXml;
}