2010-05-28 6 views
0

Je suis très nouveau dans les expressions linq et lambda. J'essaie de parcourir une collection, et quand je trouve un objet qui répond à certains critères, j'aimerais l'ajouter à une autre collection.Expressions Linq et Lambda - lorsque vous parcourez une liste sélectionnée effectuez une action

Mon LINQ marcher la collection ressemble à ceci (ceci fonctionne très bien):

From i as MyCustomItem In MyCustomItemCollection Where i.Type = "SomeType" Select i 

J'ai besoin chacun des éléments de sélection pour que je sais que je peux alors être ajouté à un ListItemCollection, attribuer cette requête LINQ à une variable, puis faites un pour chaque boucle en ajoutant un nouvel objet ListItem à la collection, mais j'essaie de trouver un moyen d'ajouter chaque élément à la nouvelle ListItemcollection en marchant, pas une seconde boucle.

Merci ~ P

Répondre

1
 ListItemCollection lc = new ListItemCollection(); 
     lc.AddRange(
      (
      from i in MyCustomItemCollection 
       i.Type = "SomeType" 
      select new ListItem(){ 
       //Construct item here 
      } 
     ).ToArray() 
     ); 
+0

Merci, très utile – Prescott

0
var MyItems = (From i as MyCustomItem In MyCustomItemCollection 
        Where i.Type = "SomeType" 
        Select i).ToArray(); 
ListItemcollection MyListItemcollection = new ListItemcollection(); 
MyListItemcollection.AddRange(MyItems); 
Questions connexes