如何使用Lambda或Linq语句执行以下操作



我有一个需要转换为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();

相关内容

  • 没有找到相关文章

最新更新