导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

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

2013/12/13

对序列应用累加器函数。

Namespace:  System.Linq
程序集:  System.Core(位于 System.Core.dll 中)

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

类型参数

TSource

source 中的元素的类型。

参数

source
类型: System.Collections.Generic.IEnumerable<TSource>
要聚合的 IEnumerable<T>
func
类型: System.Func<TSource, TSource, TSource>
要对每个元素调用的累加器函数。

返回值

类型: TSource
累加器的最终值。

用法说明

在 Visual Basic 和 C# 中,您可以对类型为 IEnumerable<TSource> 的任何对象调用此方法作为实例方法。使用实例方法语法来调用此方法时,忽略第一个参数。

异常条件
ArgumentNullException

sourcefuncnull

InvalidOperationException

source 中不包含任何元素。

Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) 方法可简化在值序列上执行的计算。 此方法的工作原理是对 source 中的每个元素调用一次 func。 每次调用 func 时,Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) 都将传递序列中的元素和聚合值(作为 func 的第一个参数)。 将 source 的第一个元素用作聚合的初始值。 func 的结果将替换以前的聚合值。Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) 返回 func 的最终结果。

若要简化一般的聚合运算,标准查询运算符还可以包含一个通用的计数方法(即 Count)和四个数值聚合方法(即 MinMaxSumAverage)。

下面的代码示例演示如何使用 Aggregate 从一个字符串数组生成一个句子。


      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);

      outputBlock.Text += reversed + "\n";

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



Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2015 Microsoft