Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ而不是嵌套的foreach和if_C#_Linq - Fatal编程技术网

C# LINQ而不是嵌套的foreach和if

C# LINQ而不是嵌套的foreach和if,c#,linq,C#,Linq,有人知道以下代码的Linq代码是什么吗 foreach (Bed bed in field.GetBeds()) { foreach (Asparagus asparagus in bed.GetAsparaguses()) { if (asparagus.Time.Date == day.Date && asparagus.Harvested) { count++; } } } 通

有人知道以下代码的Linq代码是什么吗

foreach (Bed bed in field.GetBeds())
{
    foreach (Asparagus asparagus in bed.GetAsparaguses())
    {
        if (asparagus.Time.Date == day.Date && asparagus.Harvested)
        {
            count++;
        }
    }
}

通过
选择many
获取所有芦笋,根据
中的条件过滤芦笋,然后
计数
结果

field.GetBeds()
     .SelectMany(bed => bed.GetAsparaguses())
     .Where(asparagus => asparagus.Time.Date == day.Date && asparagus.Harvested)
     .Count();

通过
选择many
获取所有芦笋,根据
中的条件过滤芦笋,然后
计数
结果

field.GetBeds()
     .SelectMany(bed => bed.GetAsparaguses())
     .Where(asparagus => asparagus.Time.Date == day.Date && asparagus.Harvested)
     .Count();

诀窍是使用
SelectMany
将嵌套项展平

var count = field.BetBeds()
    .SelectMany(bed => bed.GetAsparaguses())
    .Where(asparagus => asparagus.Time.Date == day.Date && asparagus.Harvested)
    .Count();

诀窍是使用
SelectMany
将嵌套项展平

var count = field.BetBeds()
    .SelectMany(bed => bed.GetAsparaguses())
    .Where(asparagus => asparagus.Time.Date == day.Date && asparagus.Harvested)
    .Count();

尝试ReSharper工具将帮助您快速学习LINQ尝试ReSharper工具将帮助您快速学习LINQ
.Count(a=>a.Time.Date==day.Date&&a.harved)
.Count(a=>a.Time.Date==day.Date&&a.harved)