📜  LINQ |如何找到给定序列的平均值?(1)

📅  最后修改于: 2023-12-03 15:02:41.498000             🧑  作者: Mango

LINQ |如何找到给定序列的平均值?

在C#中,可以使用LINQ来找到给定序列的平均值。LINQ(Language Integrated Query)是一种强大的查询语言,可用于检索和操作数据。

计算平均值

要计算给定序列的平均值,可以使用Average()方法。该方法是LINQ扩展方法,它接受一个序列并返回该序列的平均值。

以下是一个使用LINQ计算数组平均值的示例:

int[] numbers = { 2, 4, 6, 8, 10 };
double avg = numbers.Average();
Console.WriteLine("The average is: " + avg);

输出:

The average is: 6

在这个例子中,numbers是一个包含5个整数的数组。Average()方法会计算这个序列的平均值,并将结果存储在avg变量中。最后,程序输出结果。

注意:Average()方法返回的结果是一个double类型的数据,即使序列中的所有数字都是整数。

处理异常

如果给定的序列是空的,调用Average()方法会抛出InvalidOperationException。为了避免这种情况,可以使用DefaultIfEmpty()方法提供一个默认值。如果序列为空,DefaultIfEmpty()方法会返回一个包含一个默认值的序列。在这种情况下,平均值将是默认值。

以下是一个使用DefaultIfEmpty()方法计算空序列平均值的示例:

int[] numbers = {};
double avg = numbers.DefaultIfEmpty(0).Average();
Console.WriteLine("The average is: " + avg);

输出:

The average is: 0

在这个例子中,numbers是一个空的整数数组。在调用Average()方法之前,使用DefaultIfEmpty()方法提供默认值0。因此,当计算平均值时,结果将是0。

结论

通过使用LINQ中的Average()方法,开发人员可以轻松地计算序列的平均值。如果序列可能为空,还可以使用DefaultIfEmpty()方法提供一个默认值。