我在这里想要实现的是,我希望从该 LINQ 查询返回具有两个属性的列表:billNo 和同一 fromDate 上导入代码出现的次数。
因此,这里我们的 billNo 1 和 2 都具有相同的导入代码,该导入代码在同一日期 (01/01/2020) 出现在两行中,因此计数为 2。
如果有助于澄清的话,请将其视为导入代码应该只涵盖一个不同的 fromDate。如果出现多次,我想看看有多少次(计数)以及哪些 BillNo 是这样的。
因此下面数据集的预期结果是:
BillNo |
Count |
1 |
2 |
2 |
2 |
3 |
1 |
4 |
1 |
5 |
1 |
如果不用于分组,我很难弄清楚如何选择 BillNo。
非常感谢您的帮助。
var rows = new List<ImportRow>()
{
new ImportRow {billNo= 1, importCode = "one", fromDate = new DateTime(2020, 1, 1)},
new ImportRow {billNo= 2, importCode = "one", fromDate = new DateTime(2020, 1, 1)},
new ImportRow {billNo= 3, importCode = "two", fromDate = new DateTime(2020, 1, 1)},
new ImportRow {billNo= 4, importCode = "two", fromDate = new DateTime(2020, 2, 1)},
new ImportRow {billNo= 5, importCode = "one", fromDate = new DateTime(2020, 3, 1)}
};
public class ImportRow : IEnumerable
{
public int billNo { get; set; }
public string importCode { get; set; }
public DateTime fromDate { get; set; }
public IEnumerator GetEnumerator()
{
throw new NotImplementedException();
}
}
var billNosWithCounts = rows.GroupBy(info => new { info.importCode,
info.fromDate })
.Select(group => new
{
FromDate = group.Key.fromDate,
Count = group.Count()
});