次の方法で共有


SelectMany(TInput, TBind, TResult) メソッド (CepStream(TInput), Expression(Func(CepStream(TInput), CepStream(TBind))), Expression(Func(TInput, TBind, TResult)))

2 つの入力ストリームのクロス結合に基づいて、1 つのストリームを生成します。

名前空間:  Microsoft.ComplexEventProcessing.Linq
アセンブリ:  Microsoft.ComplexEventProcessing (Microsoft.ComplexEventProcessing.dll)

構文

public static CepStream<TResult> SelectMany<TInput, TBind, TResult>(
    this CepStream<TInput> source,
    Expression<Func<CepStream<TInput>, CepStream<TBind>>> bind,
    Expression<Func<TInput, TBind, TResult>> selector
)

型パラメーター

  • TInput
    外部入力ストリームから取得されるイベントのペイロードの型。
  • TBind
    内部入力ストリームから取得されるイベントのペイロードの型。
  • TResult
    結果イベントのペイロードの型。

パラメーター

戻り値

型: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TResult> ) > ) >
結果が外部ストリームと内部ストリームのクロス結合となるストリーム。

使用に関するメモ

Visual Basic および C# では、このメソッドを型 CepStream< (Of < ( <'TInput> ) > ) > の任意のオブジェクトのインスタンス メソッドとして呼び出すことができます。このメソッドを呼び出すためにインスタンス メソッドの構文を使う場合は、最初のパラメーターを省略してください。詳細については、「https://msdn.microsoft.com/ja-jp/library/bb384936(v=sql.105)」または「https://msdn.microsoft.com/ja-jp/library/bb383977(v=sql.105)」を参照してください。

説明

クロス結合の場合でも、内部ストリームと外部ストリームのイベントが照合され、結合の結果として出力されるのは、有効期間が重複する場合だけです。詳細については、「結合」を参照してください。

使用例

次の例では、ペイロード フィールド i の値が 3 よりも大きい stream1 のイベントが、ペイロード フィールド j の値が 10 未満の stream2 のイベントと結合されます。

var crossJoin = from e1 in stream1
                from e2 in stream2
                where e1.i > 3 && e2.j < 10
                select new { e1.i, e2.j };

関連項目

参照

CepStream クラス

SelectMany オーバーロード

Microsoft.ComplexEventProcessing.Linq 名前空間