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 stream and yields an event stream.

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;