foreach (ReportType t in reportsCollection)
{
List<Report> reps = (from r in t.reports where r.isChecked == true select r).ToList<Report>();
foreach (Report r in reps)
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(r.path));
}
Run Code Online (Sandbox Code Playgroud)
这句话很好用.我只是想找一个可以做到这一点的LINQ语句.
基本上,我有一个名为isChecked的属性的报表对象.reportsCollection包含几个包含该类型报告列表的reportTypes.所以集合看起来像这样:
TYPE1
2型
等等.
我想要一个LINQ语句,它将获取isChecked == true这些类型中的所有报告.我怀疑循环是必要的,但我很想知道社区是否有解决方案.谢谢!
您想使用SelectMany
var query = reportsCollection.SelectMany(t => t.reports)
.Where(r => r.isChecked == true)
.ToList();
Run Code Online (Sandbox Code Playgroud)
在查询表达式语法表单中,您可以将其写为
var query = (from type in reportsCollection
from report in type.reports
where report.isChecked == true
select report).ToList();
Run Code Online (Sandbox Code Playgroud)