次の方法で共有


フィルター

このトピックの例では、指定した条件に基づいてイベント ストリームをフィルターする方法を示します。フィルターは、where 句を使用して表されます。つまり、where 句で定義された式が True に評価される場合のみ、フィルターによってイベントが出力ストリームに反映されます。フィルターは、CepStream<T> イベントに適用され、CepStream<T> イベントを生成します。

使用例

次の例では、someStream イベント ストリーム内のイベントを、i フィールドのペイロード値が 10 を超えるイベントに絞り込んでいます。この条件を満たさないイベントは、出力ストリームに渡されません。

// Assuming the following input event type:
public class MyPayload
{
    public int i;
}

var queryFilter = from c in someStream
                  where c.i > 10
                  select c;

フィルター述語は、実行プロセスで使用できるすべての .NET メソッドを呼び出すことができます。Math.Abs メソッドの呼び出しの例を次に示します。

var queryFilter = from c in someStream
                  where Math.Abs(c.i) > 10
                  select c;

カルチャ固有の属性をパラメーターとして使用できます。次の例では、CultureInfo.InvariantCulture 属性を指定します。

var queryFilter = from c in someStream
                  where string.Compare(Convert.ToString(c.value),
                                       c.str,
                                       true,
                                       CultureInfo.InvariantCulture) > 0
                  select c;