Linq和Lambda表达式 - 在选定列表中行走时执行操作

时间:2010-05-28 18:27:13

标签: linq lambda

我对linq和lambda表达式很新。我正在尝试走一个集合,当我发现一个符合某些标准的项目时,我想将它添加到另一个单独的集合中。

我的linq走集合看起来像这样(这很好):

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

我需要将每个选择项添加到ListItemCollection中,我知道我可以将该linq查询分配给变量,然后为每个循环执行一个向集合添加新ListItem,但我正在尝试o找到一种方法,在步行时将每个项目添加到新的ListItemcollection,而不是第二个循环。

由于 〜P

2 个答案:

答案 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);