c# - 如何将这个双 foreach 循环转换为 lambda 表达式?

标签 c# linq lambda foreach

有没有办法让这些 foreach 循环只是一个 lambda 表达式?

    private int getNextEventId()
    {
        int numOfEvents = 0;

        foreach (MonthModel eventMonth in eventsForAllMonths)
        {
            foreach (DayModel eventDay in eventMonth.AllDays)
            {
                numOfEvents += eventDay.CalEvents.Count;
            }
        }

        return numOfEvents + 1;
    }

最佳答案

int numOfEvents = eventsForAllMonths.SelectMany(m => m.AllDays)
                                    .Select(d => d.CalEvents.Count)
                                    .Sum();

关于c# - 如何将这个双 foreach 循环转换为 lambda 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10214848/

相关文章:

c# - foreach 只执行一次查询吗?

c# - 如果子节点元素相等,如何添加父节点?

java - 在 Java8 中模拟 Lazy

c# - Activator.CreateInstance 现在返回错误

c# - 组合框的默认值(设置一次)

c# - 如果值匹配,则从另一个字符串数组获取字符串

c# - 来自 2 个不同 Entity Framework 的 Linq 连接查询

c# - 可以使子类仅通过静态属性实例化

c# - 在泛型集合的泛型方法上使用表达式lambda

c# - 相当于Lambda的C#