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
結果イベントのペイロードの型。
パラメーター
- source
型: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TInput> ) > ) >
外部入力ストリーム。
- bind
型: System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'CepStream< (Of < ( <'TInput> ) > ) >, CepStream< (Of < ( <'TBind> ) > ) >> ) > ) >> ) > ) >
内部入力ストリーム。
- selector
型: System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'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 };