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

本文关键字:循环 添加 where foreach 中的 | 更新日期: 2023-09-27 18:25:58

我有以下内容:

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

foreach中的代码只有在Type==2时才执行,所以我可以通过某种方式将Type=="02"的检查添加到循环的顶部。

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

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

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

尝试

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

如果您的菜单项已经可枚举:

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")) { 
} 

LINQ:

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

您可以使用以下命令使用linq执行此操作:

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

执行

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

怎么样

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