如何在C#中添加where到foreach循环中

时间:2012-02-27 06:28:12

标签: c#

我有以下内容:

foreach ( var menuItem in  Model.menuItems) {
  if (menuItem.Type == "02") {

  }
}

foreach中的代码仅在Type == 2时执行,因此我可以通过某种方式将Type ==“02”的检查添加到循环的顶部。

7 个答案:

答案 0 :(得分:3)

List(Of T).ForEach Method :List(Of T)的每个元素执行指定的操作。

Model.menuItems.Where(c => c.Type == "02").ToList().ForEach(delegate(type data)
        {
            //code to execute

        });

答案 1 :(得分:2)

尝试

foreach ( var menuItem in  Model.menuItems.Where(mi => mi.Type == "02") {

}

答案 2 :(得分:1)

LINQ:

foreach (var menuItem in  Model.menuItems.Where(item => item.Type == "02")) {
}

答案 3 :(得分:1)

您可以使用以下内容使用linq执行此操作:

foreach ( var menuItem in  Model.menuItems.Where(m=>m.Type == "02") {

}

答案 4 :(得分:1)

如果您的menuItems已经可枚举:

foreach (var menuItem in  Model.menuItems.Where(c => c.Type == "02")) { 
} 

否则尝试:

foreach (var menuItem in  Model.menuItems.AsEnumerable().Where(c => c.Type == "02")) { 
} 

或者:

foreach (var menuItem in  Model.menuItems.ToList().Where(c => c.Type == "02")) { 
} 

答案 5 :(得分:1)

DO

foreach ( var menuItem in  Model.menuItems.Where(m => m.Type == "02")) {}

答案 6 :(得分:0)

怎么样

foreach ( var menuItem in  Model.menuItems.Where(m => m.Type == "02")) {

}