跳到主要内容

C# LINQ 聚合

介绍

在 C# 中,LINQ(Language Integrated Query)是一种强大的工具,用于查询和操作数据。聚合操作是 LINQ 中的一种常见操作,用于对数据集进行汇总或计算。通过聚合操作,您可以轻松地对数据进行求和、计数、平均值、最大值、最小值等操作。

本文将详细介绍 C# LINQ 中的聚合操作,并通过实际示例帮助您理解其用法。

什么是 LINQ 聚合?

LINQ 聚合操作是指对数据集中的元素进行汇总或计算的操作。常见的聚合操作包括:

  • Sum:计算集合中元素的总和。
  • Count:计算集合中元素的数量。
  • Average:计算集合中元素的平均值。
  • Max:查找集合中的最大值。
  • Min:查找集合中的最小值。

这些操作通常用于对数值型数据进行汇总,但也可以应用于其他类型的数据。

基本聚合操作

1. Sum

Sum 方法用于计算集合中元素的总和。以下是一个简单的示例:

csharp
int[] numbers = { 1, 2, 3, 4, 5 };
int sum = numbers.Sum();
Console.WriteLine(sum); // 输出:15

在这个示例中,Sum 方法计算了数组 numbers 中所有元素的总和,结果为 15

2. Count

Count 方法用于计算集合中元素的数量。以下是一个示例:

csharp
int[] numbers = { 1, 2, 3, 4, 5 };
int count = numbers.Count();
Console.WriteLine(count); // 输出:5

在这个示例中,Count 方法返回了数组 numbers 中元素的数量,结果为 5

3. Average

Average 方法用于计算集合中元素的平均值。以下是一个示例:

csharp
int[] numbers = { 1, 2, 3, 4, 5 };
double average = numbers.Average();
Console.WriteLine(average); // 输出:3

在这个示例中,Average 方法计算了数组 numbers 中所有元素的平均值,结果为 3

4. Max

Max 方法用于查找集合中的最大值。以下是一个示例:

csharp
int[] numbers = { 1, 2, 3, 4, 5 };
int max = numbers.Max();
Console.WriteLine(max); // 输出:5

在这个示例中,Max 方法返回了数组 numbers 中的最大值,结果为 5

5. Min

Min 方法用于查找集合中的最小值。以下是一个示例:

csharp
int[] numbers = { 1, 2, 3, 4, 5 };
int min = numbers.Min();
Console.WriteLine(min); // 输出:1

在这个示例中,Min 方法返回了数组 numbers 中的最小值,结果为 1

实际应用场景

示例 1:计算订单总金额

假设您有一个订单列表,每个订单包含一个金额。您可以使用 Sum 方法计算所有订单的总金额:

csharp
class Order
{
public int OrderId { get; set; }
public decimal Amount { get; set; }
}

List<Order> orders = new List<Order>
{
new Order { OrderId = 1, Amount = 100.50m },
new Order { OrderId = 2, Amount = 200.75m },
new Order { OrderId = 3, Amount = 150.25m }
};

decimal totalAmount = orders.Sum(o => o.Amount);
Console.WriteLine(totalAmount); // 输出:451.50

在这个示例中,Sum 方法计算了所有订单的总金额,结果为 451.50

示例 2:查找最高分

假设您有一个学生成绩列表,您可以使用 Max 方法查找最高分:

csharp
int[] scores = { 85, 90, 78, 92, 88 };
int highestScore = scores.Max();
Console.WriteLine(highestScore); // 输出:92

在这个示例中,Max 方法返回了数组 scores 中的最高分,结果为 92

总结

LINQ 聚合操作是处理数据汇总和计算的强大工具。通过 SumCountAverageMaxMin 等方法,您可以轻松地对数据集进行各种聚合操作。本文介绍了这些方法的基本用法,并通过实际示例展示了它们的应用场景。

提示

如果您想进一步学习 LINQ,可以尝试使用 Aggregate 方法,它允许您自定义聚合逻辑。

附加资源

练习

  1. 创建一个包含多个产品的列表,每个产品包含名称和价格。使用 Sum 方法计算所有产品的总价格。
  2. 使用 Average 方法计算一组学生成绩的平均分。
  3. 使用 MaxMin 方法分别查找一组温度数据中的最高温度和最低温度。

通过完成这些练习,您将更好地掌握 LINQ 聚合操作的用法。