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シーケンスの完了を待機する