Skip to content

集約(Aggregation)オペレーター

概要

集約オペレーターは、Observable シーケンスを購読して処理し、その結果を Task<T> として取得するためのオペレーターです。すべてのオペレーターは非同期であり、await を使って結果を取得します。多くのオペレーターはシーケンスが OnCompleted を発行するまで待機して結果を返しますが、短絡評価が可能なオペレーターは条件を満たした時点で早期に完了します。各要素を処理して Task として完了を待つ ForEachAsync は、購読 API に分類しています。

すべてのオペレーターはオプションの CancellationToken パラメーターを受け取り、操作のキャンセルをサポートします。

オペレーター一覧

汎用集約

オペレーター説明
AggregateAsync前回までの累積結果と今回の要素から新しい累積結果を作り、シーケンスを単一の値に集約する
AggregateByAsyncキーごとにグループ化し、各グループの要素を 1 つの累積値にまとめる

真偽値判定

オペレーター説明
AllAsyncすべての要素が条件を満たすかを判定する
AnyAsyncいずれかの要素が条件を満たすか、またはシーケンスが空でないかを判定する
ContainsAsync指定した値がシーケンスに含まれるかを判定する
IsEmptyAsyncシーケンスが空かどうかを判定する

数値計算

オペレーター説明
AverageAsyncシーケンスの算術平均を計算する
SumAsyncシーケンスの合計を計算する
MaxAsyncシーケンスの最大値を返す
MaxByAsync指定したキーに基づいてシーケンスの最大要素を返す
MinAsyncシーケンスの最小値を返す
MinByAsync指定したキーに基づいてシーケンスの最小要素を返す
MinMaxAsyncシーケンスの最小値と最大値を同時に返す

カウント

オペレーター説明
CountAsyncシーケンスの要素数を Int32 で返す
LongCountAsyncシーケンスの要素数を Int64 で返す

要素取得

オペレーター説明
ElementAtAsync指定したインデックスの要素を返す
FirstAsync最初の要素を返す
FirstOrDefaultAsync最初の要素、または空の場合は既定値を返す
LastAsync最後の要素を返す
LastOrDefaultAsync最後の要素、または空の場合は既定値を返す
SingleAsync唯一の要素を返す(複数ある場合は例外をスローする)
SingleOrDefaultAsync唯一の要素、または空の場合は既定値を返す

等価比較

オペレーター説明
SequenceEqualAsync2 つのシーケンスが等しいかを判定する

コレクション変換

オペレーター説明
ToArrayAsyncシーケンスを配列に変換する
ToDictionaryAsyncシーケンスをディクショナリに変換する
ToHashSetAsyncシーケンスを HashSet に変換する
ToListAsyncシーケンスをリストに変換する
ToLookupAsyncシーケンスを Lookup に変換する

待機

オペレーター説明
WaitAsyncシーケンスの完了を待機する