Share via


Filtro

Nell'esempio di questo argomento viene illustrato come filtrare un flusso di eventi in base a condizioni specifiche. I filtri vengono espressi tramite una clausola where. Il filtro propaga l'evento nel flusso di output solo se l'espressione definita nella clausola where restituisce true. Un filtro viene eseguito su un evento CepStream<T> e produce un evento CepStream<T>.

Esempi

Nell'esempio seguente gli eventi nel flusso di eventi someStream sono limitati agli eventi il cui valore del campo payload i è maggiore di 10. Gli eventi che non soddisfano questa condizione non vengono passati al flusso di output.

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

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

Il predicato del filtro può chiamare qualsiasi metodo .NET disponibile per il processo di esecuzione. Nell'esempio seguente viene chiamato il metodo Math.Abs.

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

Gli attributi specifici delle impostazioni cultura possono essere utilizzati come parametri. Nell'esempio seguente viene specificato l'attributo CultureInfo.InvariantCulture.

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