对XElement子节点的索引访问

pok*_*oke 4 c# xml linq xelement linq-to-xml

我正在使用LINQ to XML和XML解析XML文档XDocument.是否有一个办法XElement/ XContainer度日指数(按文档顺序)子节点?这样我就能得到n元素的第一个节点?

我知道我可以通过获取该元素的所有子节点并将其转换IEnumerable为a来实现这一点List,但这听起来似乎会增加高度冗余的开销(因为我只对单个子节点感兴趣).

我在文档中遗漏了什么吗?

cas*_*One 5

不,使用XElement或没有对子元素的索引访问XContainer.如果要进行索引访问,则有两种选择.

第一是调用Elements上方法XContainer(它返回一个IEnumerable<T>XElement实例中文档顺序),然后使用Skip扩展方法来跳过元件到达特定子.

如果你想经常通过索引访问子元素,那么你应该将它们放在一个IList<T>(具有索引访问权限)中,这对于ToList扩展方法来说很容易:

IList<XElement> indexedElements = element.Elements().ToList();
Run Code Online (Sandbox Code Playgroud)