【发布时间】:2011-03-04 18:11:48
【问题描述】:
我有两个 IList<Traffic> 我需要合并。
Traffic 是一个简单的类:
class Traffic
{
long MegaBits;
DateTime Time;
}
每个IList 拥有相同的Times,我需要一个IList<Traffic>,我已经总结了MegaBits,但将Time 作为关键。
这可以使用 Linq 吗?
编辑:
我忘了提到 Time 在任何列表中不一定是唯一的,多个 Traffic 实例可能具有相同的 Time。
另外我可能会遇到 X 个列表(超过 2 个),我也应该提到这一点 - 抱歉 :-(
示例:
IEnumerable<IList<Traffic>> trafficFromDifferentNics;
var combinedTraffic = trafficFromDifferentNics
.SelectMany(list => list)
.GroupBy(traffic => traffic.Time)
.Select(grp => new Traffic { Time = grp.Key, MegaBits = grp.Sum(tmp => tmp.MegaBits) });
上面的例子有效,感谢您的输入:-)
【问题讨论】:
标签: c# linq linq-to-objects