Seq.averageBy<'T,^U> 函数 (F#)

更新:2010 年 8 月

返回通过将函数应用于序列的每个元素而生成的结果的平均值。

命名空间/模块路径: Microsoft.FSharp.Collections.Seq

程序集:FSharp.Core(在 FSharp.Core.dll 中)

// Signature:
Seq.averageBy : ('T -> ^U) -> seq<'T> -> ^U (requires ^U with static member (+) and ^U with static member DivideByInt and ^U with static member Zero)

// Usage:
Seq.averageBy projection source

参数

  • projection
    类型:'T -> ^U

    一个用来转换序列的每个元素的函数。

  • source
    类型:seq<'T>

    输入序列。

异常

异常

Condition

ArgumentException

在输入序列包含零个元素时引发。

ArgumentNullException

在输入序列为 null 时引发。

返回值

对序列元素使用 projection 函数的平均值。

备注

使用与生成的类型关联的 + 运算符、DivideByInt 方法和 Zero 属性求元素的平均值。

此函数在编译的程序集中名为 AverageBy。 如果从 F# 以外的语言中访问函数,或通过反射访问成员,请使用此名称。

示例

以下代码示例演示如何使用 Seq.averageBy,并比较 Seq.averageSeq.averageBy

// You can use Seq.average to average elements of a list, array, or sequence.
let average1 = Seq.average [ 1.0 .. 10.0 ]
printfn "Average: %f" average1
// To average a sequence of integers, use Seq.averageBy to convert to float.
let average2 = Seq.averageBy (fun elem -> float elem) (seq { 1 .. 10 })
printfn "Average: %f" average2

Output

  

平台

Windows 7、Windows Vista SP2、Windows XP SP3、Windows XP x64 SP2、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Server 2003 SP2

版本信息

F# 运行时

受以下版本支持:2.0、4.0

Silverlight

受以下版本支持:3

请参见

参考

Collections.Seq 模块 (F#)

Microsoft.FSharp.Collections 命名空间 (F#)

修订记录

Date

修订记录

原因

2010 年 8 月

添加了代码示例。

信息补充。