この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

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

 

公開日: 2016年11月

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

名前空間:   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

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>) 、両方の要素のシーケンスと集計値を渡します (1 番目の引数として func)。 最初の要素 source は最初の集計値として使用します。 結果 func 以前の集計値が置き換えられます。 Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) 最終的な結果を返す funcします。

このオーバー ロード、 Aggregate<TSource>methodisn't の最初の要素を使用してすべての casesbecause に適した source 最初の集計値として。 戻り値での要素のみを含める場合は、別のオーバー ロードを選択してください source 、特定の条件に一致します。 たとえば、このオーバー ロードに偶数の合計を計算する reliableif sourceします。 結果は最初の要素があってもではなく奇数の場合は正しくなります。

一般的な集計操作を簡略化標準クエリ演算子も含める汎用 count メソッドでは、 Count<TSource>, 、および 4 つの数値の集計メソッドつまり 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 以降で使用可能
トップに戻る
表示: