我正在尝试合并正在序列化的无数列表

我有看起来像这样的数据:

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)
        });
}


这对您的样本数据对我有用。

10-06 13:30