Filtrar

En el ejemplo de este tema se muestra cómo filtrar un flujo de eventos en función de condiciones especificadas. Los filtros se expresan a través de una cláusula where. Es decir, el filtro solamente propaga el evento al flujo de salida si la expresión definida en la cláusula where se evalúa como TRUE. Un filtro funciona en un evento CepStream<T> y produce un evento CepStream<T>.

Ejemplos

En el siguiente ejemplo, los eventos del flujo de eventos someStream se limitan a los eventos en los que el valor del campo de carga i es mayor que 10. Los eventos que no cumplen esta condición no se pasan al flujo de salida.

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

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

El predicado de filtro puede llamar a cualquier método .NET disponible para el proceso en ejecución. En el ejemplo siguiente se llama al método Math.Abs.

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

Los atributos específicos de la referencia cultural se pueden utilizar como parámetros. En el ejemplo siguiente se especifica el atributo CultureInfo.InvariantCulture.

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