我有这个需要转换为lambda语句的函数:
public int someFunction()
{
int pCount = 0;
foreach (Top top in Tops)
{
foreach (P p in top.TopPs)
{
pCount++;
}
}
return pCount;
}
添加了更多清晰度:
Tops和top.TopPs扩展了ObservableCollection
我该怎么做?
答案 0 :(得分:8)
int count = Tops.Sum(top => top.TopPs.Count());
答案 1 :(得分:5)
您的意思是LINQ查询吗?
int count = Tops.SelectMany(x => x.TopPs).Count();
答案 2 :(得分:2)
使用sum LINQ运算符而不是嵌套集合的计数:
Tops.Sum(t=>t.TopPs.Count());
答案 3 :(得分:1)
这样的事情:
var pCount = Tops.Sum(t=>t.TopPs.Count());
答案 4 :(得分:1)
这是另一种方法:
int pCount = (from t in Tops
from p in t.TopPs
select p).Count();
答案 5 :(得分:0)
你走了。
var cnt = Tops.Select<Top, int>(q => q.TopPs.Count()).Sum();
得到了吗?
答案 6 :(得分:-1)
你可以简单地使用Count(),它可以作为扩展方法使用。
例如:
Tops.Count();