Filtrage

L'exemple présenté dans cette rubrique montre comment filtrer un flux d'événements selon les conditions spécifiées. Les filtres sont définis via une clause where. Autrement dit, le filtre propage l'événement au flux de sortie uniquement si la valeur de l'expression définie dans la clause where est true. Un filtre fonctionne sur un événement CepStream<T> et génère un événement CepStream<T>.

Exemples

Dans l'exemple suivant, les événements du flux d'événements someStream sont limités aux événements dans lesquels la valeur du champ de charge utile i est supérieure à 10. Les événements qui ne répondent pas à cette condition ne sont pas transmis au flux de sortie.

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

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

Le prédicat de filtre peut faire appel à toute méthode .NET disponible pour le processus d'exécution. L'exemple suivant a recours à la méthode Math.Abs.

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

Il est possible d'utiliser des attributs spécifiques à la culture en guise de paramètres. L'exemple suivant spécifie l'attribut CultureInfo.InvariantCulture.

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