本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Enumerable.Aggregate<TSource> 方法 (IEnumerable<TSource>, Func<TSource, TSource, TSource>)

 

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

命名空间:   System.Linq
程序集:  System.Core(位于 System.Core.dll)

public static TSource Aggregate<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, TSource, TSource> func
)

参数

source
Type: System.Collections.Generic.IEnumerable<TSource>

IEnumerable<T> 对其进行聚合。

func
Type: System.Func<TSource, TSource, TSource>

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

返回值

Type: TSource

累加器的最终值。

类型参数

TSource

中的元素的类型 source

Exception Condition
ArgumentNullException

sourcefuncnull

InvalidOperationException

source 不包含任何元素。

Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) 方法可以很容易地通过一系列值执行计算。 此方法适用于通过调用 func 中每个元素的一次 source除第一个。 每次 func 调用时, Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) 将从该序列,并聚合的值传递的两个元素 (作为第一个参数传递给 func)。 第一个元素 source 用作初始的聚合值。 结果 func 替换以前的聚合的值。 Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) 返回的最终结果 func

此重载 Aggregate<TSource>methodisn't 适用于使用的第一个元素的所有 casesbecause source 作为初始的聚合值。 如果返回值应包含的元素,则应选择另一个重载 source 满足特定条件。 例如,此重载不是你想要对其求和的中的偶数 reliableif source 结果将是第一个元素为奇数而不是甚至不正确。

若要简化常见的聚合操作,标准查询运算符,还包括一般用途的计数方法中, Count<TSource>, ,和四个数值聚合方法,即 Min, ,Max, ,Sum, ,和 Average

下面的代码示例演示如何通过使用反向字符串中的单词的顺序Aggregate<TSource>

string sentence = "the quick brown fox jumps over the lazy dog";

// Split the string into individual words.
string[] words = sentence.Split(' ');

// Prepend each word to the beginning of the 
// new sentence to reverse the word order.
string reversed = words.Aggregate((workingSentence, next) =>
                                      next + " " + workingSentence);

Console.WriteLine(reversed);

// This code produces the following output:
//
// dog lazy the over jumps fox brown quick the 

通用 Windows 平台
自 8 起可用
.NET Framework
自 3.5 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
Windows Phone
自 8.1 起可用
返回页首
显示: