子元素XElement的索引

7

给定一个XElement,有没有办法找出该元素在父容器中的索引?

我知道一定有方法,但我就是想不出来!

谢谢!


主要问题是XPath查询正在修改XML文档结构... - Nick
3个回答

12

尝试使用e.ElementsBeforeSelf().Count()


我正在使用 XPathGetElement,我认为它作为查询的一部分修改了文档的结构,因此始终返回零。有什么想法吗? - Nick
如果 e.Parent 是有效的,你可以尝试使用 e.Parent.Elements().TakeWhile(x => x != e).Count() - dahlbyk
如果我用等效的Linq To XML语句替换我的XPathGetElement调用,那么这个(答案中的原始解决方案)就完美地工作了。 - Nick

1
尝试使用 .ToList().IndexOf(),它返回您传递的对象的索引。例如:
var index = document.Elements().ToList().IndexOf(element);

-1

在VB中

Dim Index As String = i.ToString.IndexOf(i.ToString)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接