筛选

本主题中的示例演示如何基于指定的条件筛选事件流。筛选器通过 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;