Sibling-Reihenfolge in IEnumerable bei Linq-Abfragen

05/05/2010 - 10:01 von Martin Koch | Report spam
Hallo Zusammen,

ich habe eine grundsàtzliche Frage zu LINQ to XML:
Wenn ich ein String mit Xml-Nodes einlese z.B. mit
XElement.Parse(myXmlString),
ist dann die Reihenfolge der Sibling-XElemente (nicht die Hierachie)
garaniert?

D.h., wenn ich eine Abfrage mache, ist dann garantiert, dass die Reihenfolge
im Resultat IEnumerable<XElement> immer a, b, c ist ?
Oder ist es besser noch ein OrderBy zu machen?

string myXmlString = "<root>"
+ " <a />"
+ " <b />"
+ " <c />"
+ "</root>";

XElement xRoot = XElement.Parse( myXmlString );
IEnumerable<XElement> xEle = xRoot.Elements();

foreach ( XElement elem in xEle )
{
// elem hat immer und auf jeden Fall die Reihenfolge a, b, c ??
}

Danke und Grüsse
Martin
 

Lesen sie die antworten

#1 Martin Honnen
05/05/2010 - 12:25 | Warnen spam
Martin Koch wrote:

D.h., wenn ich eine Abfrage mache, ist dann garantiert, dass die Reihenfolge
im Resultat IEnumerable<XElement> immer a, b, c ist ?
Oder ist es besser noch ein OrderBy zu machen?

string myXmlString = "<root>"
+ " <a />"
+ " <b />"
+ " <c />"
+ "</root>";

XElement xRoot = XElement.Parse( myXmlString );
IEnumerable<XElement> xEle = xRoot.Elements();

foreach ( XElement elem in xEle )
{
// elem hat immer und auf jeden Fall die Reihenfolge a, b, c ??
}



Siehe Dokumentation:
http://msdn.microsoft.com/en-us/lib...r.elements(v=VS.100).aspx
"Returns a collection of the child elements of this element or document,
in document order."
Die Reihenfolge der durch Elements() zurückgegebenen Kollektion von
Kindelementen entspricht der im Dokument.



Martin Honnen MVP Data Platform Development
http://msmvps.com/blogs/martin_honnen/

Ähnliche fragen