情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Enumerable.Aggregate<TSource> メソッド (IEnumerable<TSource>, Func<TSource, TSource, TSource>)

2013/12/12

シーケンスにアキュムレータ関数を適用します。

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

source または funcnull です。

InvalidOperationException

source に要素が含まれていません。

Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) メソッドによって、値のシーケンスの計算を簡単に実行できます。このメソッドは、source の各要素に対して func を 1 回呼び出すことにより機能します。func が呼び出されるたびに、Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) は、(func の最初の引数として) シーケンスの要素と、集計値の両方を渡します。source の最初の要素は、最初の集計値として使用されます。func の結果が、以前の集計値に置き換わります。Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) は、func の最終的な結果を返します。

一般的な集計操作を簡略化するために、標準クエリ演算子には、Count という汎用のカウント メソッドと、MinMaxSumAverage という 4 つの数値集計メソッドが含まれています。

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

表示: