Share via


Filtering

The example in this topic demonstrates how to filter an event stream based on specified conditions. Filters are expressed through a where clause. That is, the filter propagates the event to the output stream only if the expression defined in the where clause evaluates to true. A filter operates on an event CepStream<T> and yields an event CepStream<T>.

Examples

In the following example, the events in the event stream someStream are limited to events in which the value in payload field i is greater than 10. Events that do not meet this condition are not passed on to the output stream.

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

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

The filter predicate can call any .NET method available to the executing process. The following example calls the Math.Abs method.

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

Culture-specific attributes can be used as parameters. The following example specifies the CultureInfo.InvariantCulture attribute.

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