ParallelEnumerable.Aggregate 方法

定义

对一个序列并行应用累加器函数。

重载

Aggregate<TSource,TAccumulate,TResult>(ParallelQuery<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)

对一个序列并行应用累加器函数。 将指定的种子值用作累加器的初始值,并使用指定的函数选择结果值。

Aggregate<TSource,TAccumulate,TResult>(ParallelQuery<TSource>, Func<TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate, TAccumulate,TAccumulate>, Func<TAccumulate,TResult>)

对一个序列并行应用累加器函数。 此重载在顺序实现中不可用。

Aggregate<TSource,TAccumulate,TResult>(ParallelQuery<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate, TAccumulate,TAccumulate>, Func<TAccumulate,TResult>)

对一个序列并行应用累加器函数。 此重载在顺序实现中不可用。

Aggregate<TSource,TAccumulate>(ParallelQuery<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)

对一个序列并行应用累加器函数。 将指定的种子值用作累加器初始值。

Aggregate<TSource>(ParallelQuery<TSource>, Func<TSource,TSource,TSource>)

对一个序列并行应用累加器函数。

Aggregate<TSource,TAccumulate,TResult>(ParallelQuery<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)

对一个序列并行应用累加器函数。 将指定的种子值用作累加器的初始值,并使用指定的函数选择结果值。

public:
generic <typename TSource, typename TAccumulate, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static TResult Aggregate(System::Linq::ParallelQuery<TSource> ^ source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> ^ func, Func<TAccumulate, TResult> ^ resultSelector);
public static TResult Aggregate<TSource,TAccumulate,TResult> (this System.Linq.ParallelQuery<TSource> source, TAccumulate seed, Func<TAccumulate,TSource,TAccumulate> func, Func<TAccumulate,TResult> resultSelector);
static member Aggregate : System.Linq.ParallelQuery<'Source> * 'Accumulate * Func<'Accumulate, 'Source, 'Accumulate> * Func<'Accumulate, 'Result> -> 'Result
<Extension()>
Public Function Aggregate(Of TSource, TAccumulate, TResult) (source As ParallelQuery(Of TSource), seed As TAccumulate, func As Func(Of TAccumulate, TSource, TAccumulate), resultSelector As Func(Of TAccumulate, TResult)) As TResult

类型参数

TSource

source 的元素类型。

TAccumulate

累加器值的类型。

TResult

结果值的类型。

参数

source
ParallelQuery<TSource>

要对其进行聚合的序列。

seed
TAccumulate

累加器的初始值。

func
Func<TAccumulate,TSource,TAccumulate>

要对每个元素调用的累加器函数。

resultSelector
Func<TAccumulate,TResult>

将累加器的最终值转换为结果值的函数。

返回

TResult

已转换的累加器最终值。

例外

sourcefuncresultSelector 是 null 引用(在 Visual Basic 中为 Nothing)。

评估查询期间发生一个或多个异常。

source 中不包含任何元素。

另请参阅

适用于

Aggregate<TSource,TAccumulate,TResult>(ParallelQuery<TSource>, Func<TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate, TAccumulate,TAccumulate>, Func<TAccumulate,TResult>)

对一个序列并行应用累加器函数。 此重载在顺序实现中不可用。

public:
generic <typename TSource, typename TAccumulate, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static TResult Aggregate(System::Linq::ParallelQuery<TSource> ^ source, Func<TAccumulate> ^ seedFactory, Func<TAccumulate, TSource, TAccumulate> ^ updateAccumulatorFunc, Func<TAccumulate, TAccumulate, TAccumulate> ^ combineAccumulatorsFunc, Func<TAccumulate, TResult> ^ resultSelector);
public static TResult Aggregate<TSource,TAccumulate,TResult> (this System.Linq.ParallelQuery<TSource> source, Func<TAccumulate> seedFactory, Func<TAccumulate,TSource,TAccumulate> updateAccumulatorFunc, Func<TAccumulate,TAccumulate,TAccumulate> combineAccumulatorsFunc, Func<TAccumulate,TResult> resultSelector);
static member Aggregate : System.Linq.ParallelQuery<'Source> * Func<'Accumulate> * Func<'Accumulate, 'Source, 'Accumulate> * Func<'Accumulate, 'Accumulate, 'Accumulate> * Func<'Accumulate, 'Result> -> 'Result
<Extension()>
Public Function Aggregate(Of TSource, TAccumulate, TResult) (source As ParallelQuery(Of TSource), seedFactory As Func(Of TAccumulate), updateAccumulatorFunc As Func(Of TAccumulate, TSource, TAccumulate), combineAccumulatorsFunc As Func(Of TAccumulate, TAccumulate, TAccumulate), resultSelector As Func(Of TAccumulate, TResult)) As TResult

类型参数

TSource

source 的元素类型。

TAccumulate

累加器值的类型。

TResult

结果值的类型。

参数

source
ParallelQuery<TSource>

要对其进行聚合的序列。

seedFactory
Func<TAccumulate>

一个返回初始累加器值的函数。

updateAccumulatorFunc
Func<TAccumulate,TSource,TAccumulate>

要对分区中的每个元素调用的累加器函数。

combineAccumulatorsFunc
Func<TAccumulate,TAccumulate,TAccumulate>

要对每个分区中已生成的累加器结果调用的累加器函数。

resultSelector
Func<TAccumulate,TResult>

将累加器的最终值转换为结果值的函数。

返回

TResult

已转换的累加器最终值。

例外

sourceseedFactoryupdateAccumulatorFunccombineAccumulatorsFuncresultSelector 是 null 引用(在 Visual Basic 中为 Nothing)。

评估查询期间发生一个或多个异常。

source 中不包含任何元素。

注解

此重载特定于并行化查询。 并行查询可将数据源序列分区为多个子序列, (分区) 。 在 updateAccumulatorFunc 分区中的每个元素上调用该元素。 然后,每个分区生成单个累积结果。 然后,在每个分区的结果上调用该 combineAccumulatorsFunc 元素以生成单个元素。 然后,此元素由 resultSelector 函数转换。

另请参阅

适用于

Aggregate<TSource,TAccumulate,TResult>(ParallelQuery<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate, TAccumulate,TAccumulate>, Func<TAccumulate,TResult>)

对一个序列并行应用累加器函数。 此重载在顺序实现中不可用。

public:
generic <typename TSource, typename TAccumulate, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static TResult Aggregate(System::Linq::ParallelQuery<TSource> ^ source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> ^ updateAccumulatorFunc, Func<TAccumulate, TAccumulate, TAccumulate> ^ combineAccumulatorsFunc, Func<TAccumulate, TResult> ^ resultSelector);
public static TResult Aggregate<TSource,TAccumulate,TResult> (this System.Linq.ParallelQuery<TSource> source, TAccumulate seed, Func<TAccumulate,TSource,TAccumulate> updateAccumulatorFunc, Func<TAccumulate,TAccumulate,TAccumulate> combineAccumulatorsFunc, Func<TAccumulate,TResult> resultSelector);
static member Aggregate : System.Linq.ParallelQuery<'Source> * 'Accumulate * Func<'Accumulate, 'Source, 'Accumulate> * Func<'Accumulate, 'Accumulate, 'Accumulate> * Func<'Accumulate, 'Result> -> 'Result
<Extension()>
Public Function Aggregate(Of TSource, TAccumulate, TResult) (source As ParallelQuery(Of TSource), seed As TAccumulate, updateAccumulatorFunc As Func(Of TAccumulate, TSource, TAccumulate), combineAccumulatorsFunc As Func(Of TAccumulate, TAccumulate, TAccumulate), resultSelector As Func(Of TAccumulate, TResult)) As TResult

类型参数

TSource

source 的元素类型。

TAccumulate

累加器值的类型。

TResult

结果值的类型。

参数

source
ParallelQuery<TSource>

要对其进行聚合的序列。

seed
TAccumulate

累加器的初始值。

updateAccumulatorFunc
Func<TAccumulate,TSource,TAccumulate>

要对分区中的每个元素调用的累加器函数。

combineAccumulatorsFunc
Func<TAccumulate,TAccumulate,TAccumulate>

要对每个分区中已生成的累加器结果调用的累加器函数。

resultSelector
Func<TAccumulate,TResult>

将累加器的最终值转换为结果值的函数。

返回

TResult

已转换的累加器最终值。

例外

sourceupdateAccumulatorFunccombineAccumulatorsFuncresultSelector 是 null 引用(在 Visual Basic 中为 Nothing)。

评估查询期间发生一个或多个异常。

source 中不包含任何元素。

注解

此重载特定于处理并行查询。 并行查询可将数据源序列分区为多个子序列, (分区) 。 在 updateAccumulatorFunc 分区中的每个元素上调用该元素。 然后,每个分区生成单个累积结果。 然后,在每个分区的结果上调用该 combineAccumulatorsFunc 元素以生成单个元素。 然后,此元素由 resultSelector 函数转换。

另请参阅

适用于

Aggregate<TSource,TAccumulate>(ParallelQuery<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)

对一个序列并行应用累加器函数。 将指定的种子值用作累加器初始值。

public:
generic <typename TSource, typename TAccumulate>
[System::Runtime::CompilerServices::Extension]
 static TAccumulate Aggregate(System::Linq::ParallelQuery<TSource> ^ source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> ^ func);
public static TAccumulate Aggregate<TSource,TAccumulate> (this System.Linq.ParallelQuery<TSource> source, TAccumulate seed, Func<TAccumulate,TSource,TAccumulate> func);
static member Aggregate : System.Linq.ParallelQuery<'Source> * 'Accumulate * Func<'Accumulate, 'Source, 'Accumulate> -> 'Accumulate
<Extension()>
Public Function Aggregate(Of TSource, TAccumulate) (source As ParallelQuery(Of TSource), seed As TAccumulate, func As Func(Of TAccumulate, TSource, TAccumulate)) As TAccumulate

类型参数

TSource

source 的元素类型。

TAccumulate

累加器值的类型。

参数

source
ParallelQuery<TSource>

要对其进行聚合的序列。

seed
TAccumulate

累加器的初始值。

func
Func<TAccumulate,TSource,TAccumulate>

要对每个元素调用的累加器函数。

返回

TAccumulate

累加器的最终值。

例外

sourcefunc 为 null 引用(在 Visual Basic 中为 Nothing)。

评估查询期间发生一个或多个异常。

source 中不包含任何元素。

另请参阅

适用于

Aggregate<TSource>(ParallelQuery<TSource>, Func<TSource,TSource,TSource>)

对一个序列并行应用累加器函数。

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource Aggregate(System::Linq::ParallelQuery<TSource> ^ source, Func<TSource, TSource, TSource> ^ func);
public static TSource Aggregate<TSource> (this System.Linq.ParallelQuery<TSource> source, Func<TSource,TSource,TSource> func);
static member Aggregate : System.Linq.ParallelQuery<'Source> * Func<'Source, 'Source, 'Source> -> 'Source
<Extension()>
Public Function Aggregate(Of TSource) (source As ParallelQuery(Of TSource), func As Func(Of TSource, TSource, TSource)) As TSource

类型参数

TSource

source 的元素类型。

参数

source
ParallelQuery<TSource>

要对其进行聚合的序列。

func
Func<TSource,TSource,TSource>

要对每个元素调用的累加器函数。

返回

TSource

累加器的最终值。

例外

sourcefunc 为 null 引用(在 Visual Basic 中为 Nothing)。

评估查询期间发生一个或多个异常。

source 中不包含任何元素。

另请参阅

适用于