C# LINQ而不是嵌套的foreach和if
有人知道以下代码的Linq代码是什么吗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++; } } } 通
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)