在C#的List集合操作中,有时候需要对List集合元素进行汇总求平均值,如数值类型的List集合元素,有时候对象类型的List集合也需要对集合中的元素的某个对象进行汇总求平均值,此时都可以使用到Average来实现,Average方法是List集合中的Linq扩展方法,Average方法有2种形式,一种是不带任何参数的Average()形式,适用于数值型如int、double、decimal等数值类型的List集合计算平均值,另一种是带Lambda表达式的书写形式。
(1)针对数值类型的List集合,直接调用无参数的Average()形式即可实现,例如有个List<int>的集合list1,里面元素为1至10,求平均值可使用下列语句
List<int> list1 = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var avgResutl= list1.Average();
计算得到的结果为avgResutl=5.5,avgResult为double双精度类型。
(2)根据List对象集合中的某个属性进行求平均值的情况。
例如定义个测试类TestModel类,具体实现如下:
public class TestModel { public int Index { set; get; } public string Name { set; get; } }
在定义一个List<TestModel>集合对象testList,往集合中添加下面3个元素。
List<TestModel> testList = new List<ConsoleApplication1.TestModel>(); testList.Add(new TestModel() { Index=1, Name="Index1" }); testList.Add(new TestModel() { Index = 2, Name = "Index2" }); testList.Add(new TestModel() { Index = 3, Name = "Index3" });
需要对List集合中的元素的Index属性进行汇总求平均值可使用下列语句:
var avgResult = testList.Average(t => t.Index);
最后计算的结果为avgResult=2,avgResult为double双精度类型。
备注:原文转载自博主个人站IT技术小趣屋,原文链接C#中使用Average方法对List集合中相应元素求平均值_IT技术小趣屋。