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;