如何连接两个 IEnumerables 并将它们投影到一个分组中
How to concatenate two IEnumerable's and project them into a grouping
我有两个 IEnumerable<StatusGroup>
其中 StatusGroup
喜欢
public class StatusGroup
{
public DateTime ExamDate{ get; set; }
public int SuccessCount{ get; set; }
public int FailCount{ get; set; }
}
我想合并两个 IEnumerable,因此结果将只有每个日期的一条记录,并且应该计算计数器属性的总和
例如
List1={Date= 01/01/2016 , Success=10, Fail=0}
List2={Date= 01/01/2016 , Success=0, Fail=3}
结果应该是
List2={Date= 01/01/2016 , Success=10, Fail=3}
您可以 Concat/Union,然后按日期分组。代码大致如下所示:
var list3 = List1.Concat(List2)
.GroupBy(x => x.Date)
.Select(grouping =>
new StatusGroup
{
Date = grouping.Key,
SuccessCount = grouping.Sum(x => x.SuccessCount),
FailCount = grouping.Sum(x => x.FailCount)
});
我有两个 IEnumerable<StatusGroup>
其中 StatusGroup
喜欢
public class StatusGroup
{
public DateTime ExamDate{ get; set; }
public int SuccessCount{ get; set; }
public int FailCount{ get; set; }
}
我想合并两个 IEnumerable,因此结果将只有每个日期的一条记录,并且应该计算计数器属性的总和
例如
List1={Date= 01/01/2016 , Success=10, Fail=0}
List2={Date= 01/01/2016 , Success=0, Fail=3}
结果应该是
List2={Date= 01/01/2016 , Success=10, Fail=3}
您可以 Concat/Union,然后按日期分组。代码大致如下所示:
var list3 = List1.Concat(List2)
.GroupBy(x => x.Date)
.Select(grouping =>
new StatusGroup
{
Date = grouping.Key,
SuccessCount = grouping.Sum(x => x.SuccessCount),
FailCount = grouping.Sum(x => x.FailCount)
});