Frage zu Linq

28/04/2009 - 17:12 von Michael Andreas | Report spam
Wie kann ich in nachfolgendem LINQ-Statement
eine Sortierung nach dem Feld "id"
hinzufügen?

XElement doc = XElement.Load(Act_Load_XML_FileName);
foreach (XElement c in doc.Elements().
Descendants("kategorie").DefaultIfEmpty())
if (c.Value.Contains(Kategorie))
mDataSet.ReadXml(new StringReader(c.Ancestors().First().ToString()));

Danke Michael
 

Lesen sie die antworten

#1 Martin Honnen
28/04/2009 - 17:51 | Warnen spam
Michael Andreas wrote:
Wie kann ich in nachfolgendem LINQ-Statement
eine Sortierung nach dem Feld "id"
hinzufügen?



XML hat keine "Felder", sondern Elemente und Attribute. So
"kategorie"-Elemente z.b. ein "id"-Attribut haben, kannst du das
folgendermassen lösen:

XElement doc = XElement.Load(Act_Load_XML_FileName);
foreach (XElement c in doc.Elements().
Descendants("kategorie").DefaultIfEmpty())



foreach (XElement c in
doc.Elements().Descendants("kategorie").OrderBy(k =>
(string)k.Attribute("id")))

Mit einem Kindelement names "id" dann etwa

foreach (XElement c in
doc.Elements().Descendants("kategorie").OrderBy(k =>
(string)k.Element("id")))

(string) ist da auch nur ein Beispiel, man kann natürlich auch Zahlen
sortieren, z.b. als int dann

foreach (XElement c in
doc.Elements().Descendants("kategorie").OrderBy(k => (int)k.Element("id")))

if (c.Value.Contains(Kategorie))
mDataSet.ReadXml(new StringReader(c.Ancestors().First().ToString()));



Erst per ToString() serialisieren, dann per ReadXml() wieder parsen?
Dann besser
mDataSet.ReadXml(c.Ancestors().First().CreateReader());



Martin Honnen MVP XML
http://msmvps.com/blogs/martin_honnen/

Ähnliche fragen