我有一个需要转换为lambda语句的函数:
public int someFunction()
{
int pCount = 0;
foreach (Top top in Tops)
{
foreach (P p in top.TopPs)
{
pCount++;
}
}
return pCount;
}
增加了更多清晰度:
上衣和上衣。TopPs扩展ObservableCollection
我该怎么做?
int count = Tops.Sum(top => top.TopPs.Count());
您的意思是LINQ查询吗?
int count = Tops.SelectMany(x => x.TopPs).Count();
对嵌套集合的计数使用sum LINQ运算符:
Tops.Sum(t=>t.TopPs.Count());
这里有一个替代方法:
int pCount = (from t in Tops
from p in t.TopPs
select p).Count();
类似这样的东西:
var pCount = Tops.Sum(t=>t.TopPs.Count());
开始吧。
var cnt = Tops.Select<Top, int>(q => q.TopPs.Count()).Sum();
明白了吗?
您可以简单地使用Count(),它可以作为扩展方法使用。
例如:
Tops.Count();