2009-10-20 6 views
5

Comment stocker les nœuds de ce qui suit dans le dictionnaire où int est une clé générée automatiquement et une chaîne (valeur du nœud) utilisant LINQ?Conversion Linq en XML -Dictionnaire

Elements:

XElement instructors = 
     XElement.Parse(
          @"<instructors> 
           <instructor>Daniel</instructor> 
           <instructor>Joel</instructor> 
           <instructor>Eric</instructor> 
           <instructor>Scott</instructor> 
           <instructor>Joehan</instructor> 
         </instructors>" 
     ); 

partially attempted code is given below :

var qry = from instr in instructors.Elements("instructor") 
where((p,index)=> **incomplete**).select..**incomplete**; 

Comment transformer ma sélection en Dictionary<int,String>? (La clé doit commencer à partir de 1; Dans Linq, les indices commencent à partir de zéro).

Répondre

8

Que diriez-vous:

var dictionary = instructors.Elements("instructor") 
          .Select((element, index) => new { element, index }) 
          .ToDictionary(x => x.index + 1, 
              x => x.element.Value); 
+1

Oui, il fonctionne très bien, Merci –

+0

que vous avez écrit des articles spéciaux sur LINQ? –

+0

Pas vraiment - je blogue à ce sujet si souvent. –