Avatar billede prof2 Nybegynder
22. juli 2008 - 13:48 Der er 1 løsning

LINQ to XML hjælp ønskes

Hej,

Jeg har en xml fil der i grove træk ser således ud:

<players>
<player id="1">
  <weeks>
  <week id="3">
    ...
  </week>
  <week id="4">
    ...
  </week>
  </weeks>
<player>

<player id="2">
  <weeks>
  <week id="2">
    ...
  </week>
  <week id="3">
    ...
  </week>
  <week id="4">
    ...
  </week>
  </weeks>
<player>
...
</players>

Jeg ønsker at få en mængde med alle week-ids. Jeg har selv skrevet følgende der virker, men som er MEGET grimt.

var weeks = (from p in squad.Descendants("player")
            select p.Descendants("week"));
foreach (var w in weeks.ToList()[0].ToList())
    Console.WriteLine("Elm: " + w.Attribute("id"));

weeks.ToList()[0].ToList() ?? Hvorfor får jeg så mange lister ud. Kan jeg ikke fra min LINQ sætning få en List<XAttribute> eller endnu bedre en List<int>?

Der må være en pænere måde. Har samme slags problemer flere steder jeg bruger LINQ to XML.
Avatar billede prof2 Nybegynder
22. juli 2008 - 13:56 #1
Hovsa.. Fandt selv et svar. Sorry.

var weeks = (from p in squad.Descendants("player").Descendants("week")
                        select p.Attribute("id").Value).Distinct();
foreach (var w in weeks)
    Console.WriteLine("Elm: " + w);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester