[英]How can I LINQ outer join two collections?
我有以下查询:
var rowData = companies.Select(
t => new CompanyDetail
{
CompanyID = t.Title,
Subjects = subjects.Count ( u => t.RowKey == "0000" + u.PartitionKey)
}).ToList();
public class CompanyDetail
{
[DisplayName("Company")]
public string CompanyID { get; set; }
[DisplayName("Subjects")]
public Int32 Subjects { get; set; }
}
查询输出如下所示:
CompanyID Subjects
1 2
2 4
3 1
但是,如果公司没有任何科目,我会有问题。 我想看看:
CompanyID Subjects
1 2
2 4
3 1
4 0
有没有一种方法可以将LINQ查询转换为外部联接,以便它始终报告每个公司,然后统计通过行和partitionkey连接器连接了多少个主题?
不知道您使用的是什么LINQ提供程序就很难回答这个问题-例如,查询将按您期望的那样在LINQ to Objects中工作。
也许值得尝试使用显式的GroupJoin
来说服提供者为您提供空组:
var rowData = from company in companies
join subject in subjects
on company.RowKey equals "0000" + subject.PartitionKey
into companySubjectGroup
select new
{
CompanyID = company.Title,
Subjects = companySubjectGroup.Count()
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.