Enumerable.Average 方法

定义

计算数值序列的平均值。

重载

Average(IEnumerable<Single>)

计算 Single 值序列的平均值。

Average(IEnumerable<Nullable<Single>>)

计算可以为 null 的 Single 值序列的平均值。

Average(IEnumerable<Nullable<Int64>>)

计算可以为 null 的 Int64 值序列的平均值。

Average(IEnumerable<Nullable<Int32>>)

计算可以为 null 的 Int32 值序列的平均值。

Average(IEnumerable<Nullable<Double>>)

计算可以为 null 的 Double 值序列的平均值。

Average(IEnumerable<Double>)

计算 Double 值序列的平均值。

Average(IEnumerable<Int64>)

计算 Int64 值序列的平均值。

Average(IEnumerable<Int32>)

计算 Int32 值序列的平均值。

Average(IEnumerable<Decimal>)

计算 Decimal 值序列的平均值。

Average(IEnumerable<Nullable<Decimal>>)

计算可以为 null 的 Decimal 值序列的平均值。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

计算可以为 null 的 Int32 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

计算 Single 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

计算可以为 null 的 Int64 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

计算可以为 null 的 Double 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

计算可以为 null 的 Single 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

计算 Int64 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

计算 Int32 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

计算 Double 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

计算 Decimal 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

计算可以为 null 的 Decimal 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

Average(IEnumerable<Single>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Single 值序列的平均值。

C#
public static float Average (this System.Collections.Generic.IEnumerable<float> source);

参数

source
IEnumerable<Single>

要计算其平均值的 Single 值序列。

返回

值序列的平均值。

例外

sourcenull

source 中不包含任何元素。

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的 Average调用。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average(IEnumerable<Nullable<Single>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Single 值序列的平均值。

C#
public static float? Average (this System.Collections.Generic.IEnumerable<float?> source);

参数

source
IEnumerable<Nullable<Single>>

要计算平均值的可以为 null 的 Single 值序列。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

例外

sourcenull

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的 Average调用。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average(IEnumerable<Nullable<Int64>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Int64 值序列的平均值。

C#
public static double? Average (this System.Collections.Generic.IEnumerable<long?> source);

参数

source
IEnumerable<Nullable<Int64>>

要计算平均值的可以为 null 的 Int64 值序列。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

例外

sourcenull

序列中元素的总和大于 Int64.MaxValue

示例

下面的代码示例演示如何使用 Average(IEnumerable<Nullable<Int64>>) 计算平均值。

C#
long?[] longs = { null, 10007L, 37L, 399846234235L };

double? average = longs.Average();

Console.WriteLine("The average is {0}.", average);

// This code produces the following output:
//
// The average is 133282081426.333.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的 Average调用。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average(IEnumerable<Nullable<Int32>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Int32 值序列的平均值。

C#
public static double? Average (this System.Collections.Generic.IEnumerable<int?> source);

参数

source
IEnumerable<Nullable<Int32>>

要计算平均值的可以为 null 的 Int32 值序列。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

例外

sourcenull

序列中元素的总和大于 Int64.MaxValue

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的 Average调用。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average(IEnumerable<Nullable<Double>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Double 值序列的平均值。

C#
public static double? Average (this System.Collections.Generic.IEnumerable<double?> source);

参数

source
IEnumerable<Nullable<Double>>

要计算平均值的可以为 null 的 Double 值序列。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

例外

sourcenull

注解

如果元素的总和太大,无法表示为 , Double则此方法返回正无穷大或负无穷大。

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的 Average调用。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average(IEnumerable<Double>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Double 值序列的平均值。

C#
public static double Average (this System.Collections.Generic.IEnumerable<double> source);

参数

source
IEnumerable<Double>

要计算其平均值的 Double 值序列。

返回

值序列的平均值。

例外

sourcenull

source 中不包含任何元素。

注解

如果元素的总和太大,无法表示为 , Double则此方法返回正无穷大或负无穷大。

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的 Average调用。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average(IEnumerable<Int64>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Int64 值序列的平均值。

C#
public static double Average (this System.Collections.Generic.IEnumerable<long> source);

参数

source
IEnumerable<Int64>

要计算其平均值的 Int64 值序列。

返回

值序列的平均值。

例外

sourcenull

source 中不包含任何元素。

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的 Average调用。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average(IEnumerable<Int32>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Int32 值序列的平均值。

C#
public static double Average (this System.Collections.Generic.IEnumerable<int> source);

参数

source
IEnumerable<Int32>

要计算其平均值的 Int32 值序列。

返回

值序列的平均值。

例外

sourcenull

source 中不包含任何元素。

示例

下面的代码示例演示如何使用 Average(IEnumerable<Int32>) 计算平均值。

C#
List<int> grades = new List<int> { 78, 92, 100, 37, 81 };

double average = grades.Average();

Console.WriteLine("The average grade is {0}.", average);

// This code produces the following output:
//
// The average grade is 77.6.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的 Average调用。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average(IEnumerable<Decimal>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Decimal 值序列的平均值。

C#
public static decimal Average (this System.Collections.Generic.IEnumerable<decimal> source);

参数

source
IEnumerable<Decimal>

要计算其平均值的 Decimal 值序列。

返回

值序列的平均值。

例外

sourcenull

source 中不包含任何元素。

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average(IEnumerable<Nullable<Decimal>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Decimal 值序列的平均值。

C#
public static decimal? Average (this System.Collections.Generic.IEnumerable<decimal?> source);

参数

source
IEnumerable<Nullable<Decimal>>

要计算平均值的可以为 null 的 Decimal 值序列。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

例外

sourcenull

序列中元素的总和大于 Decimal.MaxValue

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Int32 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static double? Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int?> selector);

类型参数

TSource

source 的元素类型。

参数

source
IEnumerable<TSource>

要计算其平均值的值序列。

selector
Func<TSource,Nullable<Int32>>

应用于每个元素的转换函数。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

例外

sourceselectornull

序列中元素的总和大于 Int64.MaxValue

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 计算平均值。

备注

此代码示例使用方法的重载,该方法不同于本文所述的特定重载。 若要将示例扩展到本文所述的重载,请更改函数的 selector 主体。

C#
string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" };

double average = fruits.Average(s => s.Length);

Console.WriteLine("The average string length is {0}.", average);

// This code produces the following output:
//
// The average string length is 6.5.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Single 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static float Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float> selector);

类型参数

TSource

source 的元素类型。

参数

source
IEnumerable<TSource>

要计算其平均值的值序列。

selector
Func<TSource,Single>

应用于每个元素的转换函数。

返回

值序列的平均值。

例外

sourceselectornull

source 中不包含任何元素。

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 计算平均值。

备注

此代码示例使用方法的重载,该方法不同于本文所述的特定重载。 若要将示例扩展到本文所述的重载,请更改函数的 selector 主体。

C#
string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" };

double average = fruits.Average(s => s.Length);

Console.WriteLine("The average string length is {0}.", average);

// This code produces the following output:
//
// The average string length is 6.5.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Int64 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static double? Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long?> selector);

类型参数

TSource

source 的元素类型。

参数

source
IEnumerable<TSource>

要计算其平均值的值序列。

selector
Func<TSource,Nullable<Int64>>

应用于每个元素的转换函数。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) 计算平均值。

备注

此代码示例使用方法的重载,该方法不同于本文所述的特定重载。 若要将示例扩展到本文所述的重载,请更改函数的 selector 主体。

C#
string[] numbers = { "10007", "37", "299846234235" };

double average = numbers.Average(num => long.Parse(num));

Console.WriteLine("The average is {0}.", average);

// This code produces the following output:
//
// The average is 99948748093.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Double 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static double? Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double?> selector);

类型参数

TSource

source 的元素类型。

参数

source
IEnumerable<TSource>

要计算其平均值的值序列。

selector
Func<TSource,Nullable<Double>>

应用于每个元素的转换函数。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

例外

sourceselectornull

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) 计算平均值。

备注

此代码示例使用方法的重载,该方法不同于本文所述的特定重载。 若要将示例扩展到本文所述的重载,请更改函数的 selector 主体。

C#
string[] numbers = { "10007", "37", "299846234235" };

double average = numbers.Average(num => long.Parse(num));

Console.WriteLine("The average is {0}.", average);

// This code produces the following output:
//
// The average is 99948748093.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Single 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static float? Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float?> selector);

类型参数

TSource

source 的元素类型。

参数

source
IEnumerable<TSource>

要计算其平均值的值序列。

selector
Func<TSource,Nullable<Single>>

应用于每个元素的转换函数。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

例外

sourceselectornull

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 计算平均值。

备注

此代码示例使用方法的重载,该方法不同于本文所述的特定重载。 若要将示例扩展到本文所述的重载,请更改函数的 selector 主体。

C#
string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" };

double average = fruits.Average(s => s.Length);

Console.WriteLine("The average string length is {0}.", average);

// This code produces the following output:
//
// The average string length is 6.5.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Int64 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static double Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long> selector);

类型参数

TSource

源的元素的类型。

参数

source
IEnumerable<TSource>

要计算其平均值的值序列。

selector
Func<TSource,Int64>

应用于每个元素的转换函数。

返回

值序列的平均值。

例外

sourceselectornull

source 中不包含任何元素。

序列中元素的总和大于 Int64.MaxValue

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) 计算平均值。

C#
string[] numbers = { "10007", "37", "299846234235" };

double average = numbers.Average(num => long.Parse(num));

Console.WriteLine("The average is {0}.", average);

// This code produces the following output:
//
// The average is 99948748093.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Int32 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static double Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int> selector);

类型参数

TSource

source 的元素类型。

参数

source
IEnumerable<TSource>

要计算其平均值的值序列。

selector
Func<TSource,Int32>

应用于每个元素的转换函数。

返回

值序列的平均值。

例外

sourceselectornull

source 中不包含任何元素。

序列中元素的总和大于 Int64.MaxValue

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 计算平均值。

C#
string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" };

double average = fruits.Average(s => s.Length);

Console.WriteLine("The average string length is {0}.", average);

// This code produces the following output:
//
// The average string length is 6.5.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Double 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static double Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double> selector);

类型参数

TSource

source 的元素类型。

参数

source
IEnumerable<TSource>

要计算其平均值的值序列。

selector
Func<TSource,Double>

应用于每个元素的转换函数。

返回

值序列的平均值。

例外

sourceselectornull

source 中不包含任何元素。

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) 计算平均值。

备注

此代码示例使用方法的重载,该方法不同于本文所述的特定重载。 若要将示例扩展到本文所述的重载,请更改函数的 selector 主体。

C#
string[] numbers = { "10007", "37", "299846234235" };

double average = numbers.Average(num => long.Parse(num));

Console.WriteLine("The average is {0}.", average);

// This code produces the following output:
//
// The average is 99948748093.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算 Decimal 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static decimal Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal> selector);

类型参数

TSource

source 的元素类型。

参数

source
IEnumerable<TSource>

用于计算平均值的值序列。

selector
Func<TSource,Decimal>

应用于每个元素的转换函数。

返回

值序列的平均值。

例外

sourceselectornull

source 中不包含任何元素。

序列中元素的总和大于 Decimal.MaxValue

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) 计算平均值。

备注

此代码示例使用方法的重载,该方法不同于本文所述的特定重载。 若要将示例扩展到本文所述的重载,请更改函数的 selector 主体。

C#
string[] numbers = { "10007", "37", "299846234235" };

double average = numbers.Average(num => long.Parse(num));

Console.WriteLine("The average is {0}.", average);

// This code produces the following output:
//
// The average is 99948748093.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Source:
Average.cs
Source:
Average.cs
Source:
Average.cs

计算可以为 null 的 Decimal 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。

C#
public static decimal? Average<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal?> selector);

类型参数

TSource

source 的元素类型。

参数

source
IEnumerable<TSource>

要计算其平均值的值序列。

selector
Func<TSource,Nullable<Decimal>>

应用于每个元素的转换函数。

返回

如果源序列为空或仅包含为 null 的值,则为null;否则为值序列的平均值。

例外

sourceselectornull

序列中元素的总和大于 Decimal.MaxValue

示例

下面的代码示例演示如何使用 Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) 计算平均值。

备注

此代码示例使用方法的重载,该方法不同于本文所述的特定重载。 若要将示例扩展到本文所述的重载,请更改函数的 selector 主体。

C#
string[] numbers = { "10007", "37", "299846234235" };

double average = numbers.Average(num => long.Parse(num));

Console.WriteLine("The average is {0}.", average);

// This code produces the following output:
//
// The average is 99948748093.

注解

在 Visual Basic 查询表达式语法中, Aggregate Into Average() 子句转换为 的调用 Average

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0