集約(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 | 唯一の要素、または空の場合は既定値を返す |
等価比較
| オペレーター | 説明 |
|---|---|
| SequenceEqualAsync | 2 つのシーケンスが等しいかを判定する |
コレクション変換
| オペレーター | 説明 |
|---|---|
| ToArrayAsync | シーケンスを配列に変換する |
| ToDictionaryAsync | シーケンスをディクショナリに変換する |
| ToHashSetAsync | シーケンスを HashSet に変換する |
| ToListAsync | シーケンスをリストに変換する |
| ToLookupAsync | シーケンスを Lookup に変換する |
待機
| オペレーター | 説明 |
|---|---|
| WaitAsync | シーケンスの完了を待機する |