按两列分组,并使用元组作为键 C# Linq 执行 ToDictionary
本文关键字:元组 ToDictionary 执行 Linq 两列 | 更新日期: 2023-09-27 18:34:17
我有一段代码,我想按两个字段分组,并使用两个字段作为元组键对其执行ToDictionary。我不确定语法。以下是我所拥有的,但问题是它创建了一个包含单个项目的元组。
var count = this.Db.Query<EmployeeCount>(@"select
employername, ein, month, headcount
from employerInfo A inner join MonthlyInfo B on (A.Id = B.Id)
where A.ClientId = @Client",
new { run.Client })
.GroupBy(r => new { r.EIN, r.EmployerName})
.ToDictionary(pair => Tuple.Create<string>(pair.Key.ToString()), pair => pair.ToDictionary(r => (Months)r.month, r => r.headcount));
我的 EmployeeCount 类是
private class CountQuery
{
public string EmployerName;
public string EIN;
public int Month;
public int HeadCount;
}
我尝试做一个元组.Create,但我不确定如何通知参数将是元组的EIN和雇主名称。
我自己想通了,如下所示
var count = this.Db.Query<EmployeeCount>(@"select
employername, ein, month, headcount
from employerInfo A inner join MonthlyInfo B on (A.Id = B.Id)
where A.ClientId = @Client",
new { run.Client })
.GroupBy(r => new { r.EIN, r.EmployerName}).ToDictionary(pair => Tuple.Create<string,string>(pair.Key.EIN.ToString(),pair.Key.EmployerName), pair => pair.ToDictionary(r => (Months)r.ReportingMonth, r => r.FTECount))