Compartilhar via


Filtragem

O exemplo deste tópico demonstra como filtrar um fluxo de eventos com base em condições especificadas. Os filtros são expressos por meio de uma cláusula where. Ou seja, o filtro propagará o evento para o fluxo de saída somente se a expressão definida na cláusula where for avaliada como true. Um filtro opera um evento CepStream<T> e produz um evento CepStream<T>.

Exemplos

No exemplo a seguir, os eventos no fluxo de eventos someStream são limitados a eventos nos quais o valor no campo de carga i é maior que 10. Eventos que não atendem a essa condição não são passados para o fluxo de saída.

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

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

O predicado de filtro pode chamar qualquer método .NET disponível para o processo em execução. O exemplo a seguir chama o método Math.Abs.

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

Os atributos específicos da cultura podem ser usados como parâmetros. O exemplo a seguir especifica o atributo CultureInfo.InvariantCulture.

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