Индекс дочернего элемента XElement

Учитывая XElement, есть ли способ узнать индекс этого элемента в родительском контейнере?

Я знаю, что должно быть, но я просто не могу понять это!

Спасибо!


person Nick    schedule 12.07.2011    source источник
comment
Основная проблема заключалась в том, что запрос XPath модифицировал структуру XML-документа...   -  person Nick    schedule 13.07.2011


Ответы (2)


Попробуйте e.ElementsBeforeSelf().Count()

person dahlbyk    schedule 12.07.2011
comment
Я использую XPathGetElement, который, я думаю, изменяет структуру документа как часть запроса, поэтому он всегда возвращает ноль. Любые идеи? - person Nick; 12.07.2011
comment
Если e.Parent действителен, вы можете попробовать e.Parent.Elements().TakeWhile(x => x != e).Count(). - person dahlbyk; 12.07.2011
comment
Это (исходное решение в ответе) отлично работает, если я заменю свой вызов XPathGetElement эквивалентным оператором Linq To XML. - person Nick; 13.07.2011

Попробуйте использовать .ToList().IndexOf(), который возвращает индекс объекта, который вы передаете. Пример:

var index = document.Elements().ToList().IndexOf(element);
person CamronBute    schedule 12.07.2011