Laden...

Linq to XML Node anhand Childnode sortieren

Erstellt von st@tic vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.353 Views
S
st@tic Themenstarter:in
281 Beiträge seit 2004
vor 9 Jahren
Linq to XML Node anhand Childnode sortieren

Ich habe eine kleine XML Datei, welche als Datengrundlage für Comboboxen dient.

Ich hab die XML-Datei mal gekürzt und nur das wesentliche reingepackt


<?xml version="1.0" encoding="utf-8" ?> 
<Data>
<Scanners>
    <Scanner>
      <DisplayName>Scanner 9</DisplayName>
      <ID>9</ID>
    </Scanner>
    <Scanner>
	<DisplayName>Scanner 0</DisplayName>
	<ID>0</ID>
     </Scanner>
     <Scanner>
	<DisplayName>Scanner 1</DisplayName>
	<ID>1</ID>
     </Scanner>
</Scanners>
</Data>

Mein Ziel ist es jetzt, dass anhand vom Displayname die Knoten sortiert werden, damit ich diese dann sortiert in ein Dictionary übernehmen kann.


            Dictionary<string, string> Scanner = new Dictionary<string, string>();

XDocument xmlDocument = XDocument.Load("data.xml");

            IEnumerable<XElement> items = from item in xmlDevices.Descendants("Scanners")
                                          select item;
            foreach (var item in items)
            {
                IEnumerable<XElement> FormData = item.Descendants("Scanner");
                foreach (var Data in FormData)
                {
                    Scanner.Add(Data.Element("ID").Value, Data.Element("DisplayName").Value);
                }
            }
            return Scanner;

Ich bin was Linq angeht alles andere als bewandert. Ich weiß zwar dass man mit einem sql ähnlichen syntax mit orderby sortieren kann, aber ich weiß jetzt nicht genau wie ich den code erweitern muss. wäre toll, wenn mir jemand unter die arme greifen könnte

16.806 Beiträge seit 2008
vor 9 Jahren

101-Linq Samples

Bitte beachte [Hinweis] Wie poste ich richtig? Punkte 4*
So schwer ist das nicht und ist binnen Minuten erlernt.

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo st@tic,

suchst du?


var ordered = dict.OrderBy(x => x.Value);

Das kann man aber googlen.

Gruss

Coffeebean

S
st@tic Themenstarter:in
281 Beiträge seit 2004
vor 9 Jahren

ich schau mal ob ich damit was anfangen kann. danke