C# System.Xml.Linq.XDocument类是否实现IEnumerable<;T>;?

C# System.Xml.Linq.XDocument类是否实现IEnumerable<;T>;?,c#,linq,C#,Linq,我知道不能在未实现IEnumerable的对象上运行LINQ语句。我还知道可以对XDocument类的实例运行LINQ语句 比如我可以 XDocument people = XDocument.Load(@"People.xml"); var legalDrinkers = from x in people.Descendants("person") where int.Parse(x.Attribute("Age").ToStr

我知道不能在未实现
IEnumerable
的对象上运行LINQ语句。我还知道可以对XDocument类的实例运行LINQ语句

比如我可以

    XDocument people = XDocument.Load(@"People.xml");

    var legalDrinkers = from x in people.Descendants("person")
                        where int.Parse(x.Attribute("Age").ToString()) > 21
                        select x;

但是,当我查看XDocument的元数据及其继承层次结构中的所有上游类时,我看不到在哪里实现了
IEnumerable
。这里我遗漏了什么?

您不直接从XDocument使用LINQ,而是关闭其中的方法,例如或哪些方法实现了所需的接口。

您不直接从XDocument使用LINQ,而是关闭其中的方法,例如或哪些方法实现了所需的接口。

请给出一个示例“可以针对XDocument的实例运行LINQ语句”。但示例并不针对XDocument的
实例
(+1到Reed Copsey的答案),而是方法返回的节点集合……请显示“可以针对XDocument的实例运行LINQ语句”的示例“。但该示例并不针对XDocument的
实例(Reed Copsey的答案为+1),而是由方法返回的节点集合……从技术上讲,这些将是
System.Xml.Linq
中的
Extensions
类中定义的扩展方法,正确吗?@Tim Nope-这些方法是通过其基类(
XContainer
)直接在
XDocument
/
XElement
上定义的。从技术上讲,这些方法是在
System.Xml.Linq
中的
扩展
类中定义的扩展方法,正确吗?@Tim Nope-这些方法是通过基类(
XContainer
)直接在
XDocument
/
XElement
上定义的