.NET LINQ 聚合操作

本文详细介绍了聚合操作的概念及其在集合处理中的应用,包括平均值、计数、最大值、最小值和求和等基本聚合方法,并提供了C#和Visual Basic中的查询表达式语法示例。

  • 聚合操作

     聚合运算从值集合计算单个值。 从一个月的日温度值计算日平均温度就是聚合运算的一个示例。

  • 方法

方法名

说明

C# 查询表达式语法

Visual Basic 查询表达式语法

更多信息

Aggregate

对集合值执行自定义聚合运算。

不适用。

不适用。

Enumerable.Aggregate

Queryable.Aggregate

Average

计算值集合的平均值。

不适用。

Aggregate … In … Into Average()

Enumerable.Average

Queryable.Average

Count

对集合中的元素进行计数,还可以仅对满足某一谓词函数的元素进行计数。

不适用。

Aggregate … In … Into Count()

Enumerable.Count

Queryable.Count

LongCount

对大型集合中的元素进行计数,还可以仅对满足某一谓词函数的元素进行计数。

不适用。

Aggregate … In … Into LongCount()

Enumerable.LongCount

Queryable.LongCount

Max

确定集合中的最大值。

不适用。

Aggregate … In … Into Max()

Enumerable.Max

Queryable.Max

Min

确定集合中的最小值。

不适用。

Aggregate … In … Into Min()

Enumerable.Min

Queryable.Min

Sum

计算集合中值的总和。

不适用。

Aggregate … In … Into Sum()

Enumerable.Sum

Queryable.Sum

### LINQ 查询方法概述 LINQ(Language Integrated Query)是一种强大的查询技术,它允许开发者使用类似于SQL的语法来操作各种数据源。在.NET平台上,LINQ提供了两种主要的查询方式:查询表达式和方法语法。 #### 查询表达式与方法语法 查询表达式通常更易于阅读,特别是在处理复杂的查询逻辑时。例如,可以使用`from`, `where`, `select`, `orderby`等关键字来构建查询: ```csharp int[] numbers = { 1, 5, 2, 7, 13, 2, 9, 21 }; var evenNumbers = from n in numbers where n % 2 == 0 select n; ``` 而方法语法则是通过调用如`Where()`, `Select()`, `OrderBy()`等扩展方法来实现相同的功能[^2]: ```csharp var evenNumbersMethodSyntax = numbers.Where(n => n % 2 == 0); ``` #### 延迟执行 定义查询之后,实际上并没有立即执行任何操作。真正的执行发生在遍历结果的时候,这被称为延迟执行[^1]。这意味着如果数据源发生变化,在查询最终被执行之前的变化不会影响到查询的结果。 #### 立即执行 某些情况下需要立即执行查询并获取结果,这时候可以利用像`Count()`, `Sum()`, `Average()`这样的聚合函数来强制立即执行查询[^1]: ```csharp int countOfEvenNumbers = numbers.Where(n => n % 2 == 0).Count(); ``` ### 示例教程 为了更好地理解如何使用LINQ,我们可以创建一个简单的控制台应用程序来演示基本的查询操作。这里展示的是如何筛选偶数,并计算它们的数量: ```csharp using System; using System.Linq; class Program { static void Main() { int[] nums = { 1, 7, 5, 8, 9, 6, 1, 12, 11, 10 }; // 使用LINQ查询方法筛选出所有偶数 var evenList = nums.Where(k => k % 2 == 0); // 输出所有偶数 foreach (int a in evenList) { Console.WriteLine(a); } // 计算偶数的数量 int evenCount = evenList.Count(); Console.WriteLine($"Total even numbers: {evenCount}"); Console.ReadKey(); } } ``` 以上代码首先定义了一个整数数组`nums`,然后使用LINQ的方法语法来筛选出所有的偶数,并将这些偶数存储在`evenList`变量中。接着,程序遍历了`evenList`并打印每一个偶数值,最后计算了偶数的总数并通过控制台输出。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值