当前位置:首页 > C# > 正文

掌握C# LINQ聚合函数(Count/Sum/Average详解与实战)

在C#开发中,LINQ(Language Integrated Query) 是一个非常强大的工具,它允许开发者以声明式的方式对集合进行查询和操作。其中,聚合函数CountSumAverage 能够帮助我们快速完成数据统计任务。本教程将从零开始,手把手教你如何使用这些常用的 C# LINQ聚合函数

掌握C# LINQ聚合函数(Count/Sum/Average详解与实战) C# LINQ聚合函数  LINQ Count用法 Sum示例 Average计算 第1张

什么是LINQ聚合函数?

聚合函数用于对一组值执行计算,并返回单个结果。在LINQ中,常见的聚合函数包括:

  • Count():统计元素数量
  • Sum():计算数值总和
  • Average():计算平均值
  • 还有 Min()Max() 等(本文重点讲解前三个)

准备工作:引入命名空间

要使用LINQ,首先确保在代码顶部添加以下命名空间:

using System;using System.Linq;using System.Collections.Generic;  

1. Count() 方法:统计元素个数

Count() 用于获取集合中元素的总数。你也可以传入一个条件,只统计满足条件的元素。

// 示例1:统计列表中所有元素数量List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };int total = numbers.Count(); // 结果:5// 示例2:统计大于3的元素数量int countGreaterThan3 = numbers.Count(x => x > 3); // 结果:2  

注意:Count() 不会修改原集合,它只是“读取”并返回一个整数。

2. Sum() 方法:求和计算

Sum() 用于对数值型集合中的所有元素求和。你也可以对对象的某个属性求和。

// 示例1:对整数列表求和List<int> scores = new List<int> { 85, 90, 78, 92 };int totalScore = scores.Sum(); // 结果:345// 示例2:对自定义对象的属性求和class Student {    public string Name { get; set; }    public int Score { get; set; }}List<Student> students = new List<Student>{    new Student { Name = "张三", Score = 85 },    new Student { Name = "李四", Score = 90 }};int totalStudentScore = students.Sum(s => s.Score); // 结果:175  

3. Average() 方法:计算平均值

Average() 返回集合中数值的平均值。同样支持对对象属性进行平均计算。

// 示例1:计算整数列表的平均值List<double> prices = new List<double> { 10.5, 20.0, 15.5 };double avgPrice = prices.Average(); // 结果:15.333...// 示例2:计算学生平均分double avgStudentScore = students.Average(s => s.Score); // 结果:87.5  

常见注意事项

  • 如果集合为空,调用 Sum()Average() 会抛出 InvalidOperationException 异常(特别是 Average)。建议先判断是否为空,或使用可空类型处理。
  • 对于 Count(),空集合返回 0,不会报错。
  • 这些方法都支持延迟执行以外的立即执行(即调用后立刻返回结果,不是 IEnumerable)。

总结

通过本教程,你已经掌握了 C# 中最常用的三个 LINQ聚合函数CountSumAverage。它们能极大简化数据统计代码,提升开发效率。无论是处理简单的数字列表,还是复杂的业务对象集合,这些方法都能派上用场。

记住我们的核心 SEO关键词

  • C# LINQ聚合函数
  • LINQ Count用法
  • LINQ Sum示例
  • LINQ Average计算

现在就去你的项目中试试吧!你会发现,原本需要写循环和累加器的逻辑,现在一行代码就能搞定。