2011-07-12 15 views
5

Czy można znaleźć indeks tego elementu w kontenerze nadrzędnym pod numerem XElement?Indeks dziecka XElement

Wiem, że musi być, ale po prostu nie mogę tego rozgryźć!

Dzięki!

+0

Głównym problemem było to, że zapytanie XPath był modyfikując strukturę dokumentu XML ... – Nick

Odpowiedz

9

Spróbuj e.ElementsBeforeSelf().Count()

+0

Używam 'XPathGetElement' który, jak myślę, modyfikuje strukturę dokumentu jako część zapytania, więc t jego zawsze zwraca zero. Jakieś pomysły? – Nick

+0

Jeśli 'e.Parent' jest poprawny, możesz spróbować' e.Parent.Elements(). TakeWhile (x => x! = E) .Count() '. – dahlbyk

+0

To (oryginalne rozwiązanie w odpowiedzi) działa idealnie, jeśli zastąpię moje wywołanie XPathGetElement odpowiednikiem instrukcji Linq To XML. – Nick

1

Spróbuj użyć .ToList().IndexOf() która zwraca indeks obiektu Ci przepustkę. Przykład:

var index = document.Elements().ToList().IndexOf(element); 
0

W VB

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