エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

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
)

型パラメーター

TSource

source の要素の型。

パラメーター

source
型 : System.Collections.Generic.IEnumerable<TSource>
集計対象の IEnumerable<T>
func
型 : System.Func<TSource, TSource, TSource>
各要素に対して呼び出すアキュムレータ関数。

戻り値

型 : TSource
最終的なアキュムレータ値。

使用上の注意

Visual Basic および Visual C# では、このメソッドを、IEnumerable<TSource> 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。詳細については、「拡張メソッド (Visual Basic)」または「拡張メソッド (C# プログラミング ガイド)」を参照してください。

例外条件
ArgumentNullException

source または funcnull です。

InvalidOperationException

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

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

Aggregate のメソッドのこのオーバーロードでは、最初の集計値として source の最初の要素を使用するため、すべての場合には適していません。 戻り値は、特定の条件を満たす source 要素のみ含まれれば別のオーバーロードを選択する必要があります。 たとえば、このオーバーロードは sourceの偶数の合計を計算する場合、信頼できません。 結果は最初の要素がの代わりに奇数の不適切です。

一般的な集計操作を簡略化するために、標準クエリ演算子には、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);

            Console.WriteLine(reversed);

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



.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

追加
表示:
© 2014 Microsoft