フィルター
このトピックの例では、指定した条件に基づいてイベント ストリームをフィルターする方法を示します。フィルターは、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;