2

我需要通过基于另一个属性对对象进行分组来计算对象列表中某个属性的聚合。例如,我有一个包含 5 个对象的列表,如下所示:

list<cls> Objlist = new list<cls>();

 Obj1.Name="earth";
 Obj1.Value = 10;
 objlist.add(Obj1);

 Obj2.Name="sun";
 Obj2.value = 15;
 objlist.add(Obj2);

 Obj3.Name = "earth";
 Obj3.Value = 25;
 objlist.add(Obj3);

 Obj4.Name = "earth";
 Obj4.Value = 35;
 objlist.add(Obj4);

 Obj5.Name="sun";
 Obj5.value = 50;
 objlist.add(Obj5);

我需要的是另一个列表来获得地球和太阳对象的平均值。如何使用 LINQ 来完成?

4

1 回答 1

4

Average是您从 LINQ 中需要的,首先GroupBy用于分组Name

var result = Objlist.GroupBy(x => x.Name)
            .Select(g => new {
                                 Name = g.Key, 
                                 Value = g.Average(o => o.Value)
                             });
于 2012-09-12T10:25:47.957 回答