我对linq和lambda表达式很新。我正在尝试走一个集合,当我发现一个符合某些标准的项目时,我想将它添加到另一个单独的集合中。
我的linq走集合看起来像这样(这很好):
From i as MyCustomItem In MyCustomItemCollection Where i.Type = "SomeType" Select i
我需要将每个选择项添加到ListItemCollection中,我知道我可以将该linq查询分配给变量,然后为每个循环执行一个向集合添加新ListItem,但我正在尝试o找到一种方法,在步行时将每个项目添加到新的ListItemcollection,而不是第二个循环。
由于 〜P
答案 0 :(得分:1)
ListItemCollection lc = new ListItemCollection();
lc.AddRange(
(
from i in MyCustomItemCollection
i.Type = "SomeType"
select new ListItem(){
//Construct item here
}
).ToArray()
);
答案 1 :(得分:0)
var MyItems = (From i as MyCustomItem In MyCustomItemCollection
Where i.Type = "SomeType"
Select i).ToArray();
ListItemcollection MyListItemcollection = new ListItemcollection();
MyListItemcollection.AddRange(MyItems);