在C#中是否有这样的结构,我可以说类似于以下内容:
foreach(object obj in listofObjects where obj.property == false){
这样它只会遍历集合中特定的对象子集?
答案 0 :(得分:9)
简单的扩展方法:
foreach(object obj in listofObjects.Where(w => !w.property))
答案 1 :(得分:9)
您可以使用方法语法
foreach(object obj in listofObjects.Where(obj => !obj.property))
也可以使用查询语法,但它不可读(至少对我来说):
foreach(object obj in (from x in listofObjects where !x.property select x))
如果您要使用它,我会将查询存储到变量中:
var query = (from x in listofObjects
where !x.property
select x);
foreach(var obj in query) { }
答案 2 :(得分:3)
LINQ:
foreach( var obj in listofObjects.Where( q => q.property == false ) )
...
答案 3 :(得分:2)
你可以这样做:
foreach (var obj in listOfObjects.Where(o => !o.Property))
{
// ...
}
答案 4 :(得分:1)
您可以使用Where
扩展方法和lambda。来自Linq。
确保您引用了System.Linq
命名空间。
foreach (var obj in listOfObjects.Where(obj => obj.property == false))