我正在尝试合并正在序列化的无数列表
我有看起来像这样的数据:
Internet explorer 10
Internet explorer 15
Mozille firefox 10
我看起来像这样:
Internet explorer 25
Mozille firefox 10
我的课看起来像:
public class BrowserVisits
{
public string BrowserName { get; set; }
public int Visits { get; set; }
}
我当前用于序列化无数列表(r)的查询如下:
var browserVisits = from r in reportData
select new BrowserVisits
{
BrowserName = r.Dimensions.First(d => d.Key == Dimension.Browser).Value,
Visits = int.Parse(r.Metrics.First(d => d.Key == Metric.Visits).Value)
};
我如何与linq中的sum分组?
我需要进行两次查询,还是可以进行一次查询。
道歉,如果这听起来很模糊,那是漫长的一天,但如果需要澄清,很高兴加入
最佳答案
关于什么:
public static IEnumerable<BrowserVisits> SumGroups(
IEnumerable<BrowserVisits> visits)
{
return visits.GroupBy(
i => i.BrowserName,
(name, browsers) => new BrowserVisits() {
BrowserName = name,
Visits = browsers.Sum(i => i.Visits)
});
}
这对您的样本数据对我有用。