我有一个上下文菜单。我遍历了所有菜单项,并根据一些布尔值禁用或启用它们。
这是我到目前为止所拥有的,但它不起作用:
contextMenu.MenuItems.Cast<MenuItem>().Select(x =>
{
x.Enabled = someValue;
return x;
});
使用简单的foreach
循环来更新您的值,LINQ
用于查询
foreach(var item in contextMenu.MenuItems.OfType<MenuItem>())
{
item.Enabled = someValue;
}
最
接近的是List<T>
上的ForEach
方法。我不认为它在技术上被认为是 LINQ,并且与核心 LINQ to Objects 方法不同,它不是IEnumerable<T>
的一部分。无论如何,我猜你会更喜欢它而不是传统的foreach
循环,因为它看起来像任何其他使用方法语法的 LINQ 查询。
contextMenu.MenuItems.Cast<MenuItem>().ToList().ForEach(x => x.Enabled = someValue);