Freigeben über


Filterung

Im Beispiel in diesem Thema wird veranschaulicht, wie ein Ereignisdatenstrom auf Grundlage von angegebenen Bedingungen gefiltert wird. Filter werden durch eine where-Klausel dargestellt. Das heißt, der Filter gibt das Ereignis an den Ausgabedatenstrom nur weiter, wenn der in der where-Klausel definierte Ausdruck TRUE ergibt. Ein Filter wirkt auf ein Ereignis CepStream<T> und führt zu einem neuen Ereignis CepStream<T>.

Beispiele

Im folgenden Beispiel sind die Ereignisse im Ereignisdatenstrom someStream auf Ereignisse beschränkt, in denen der Wert im Nutzlastfeld i größer als 10 ist. Ereignisse, die diese Bedingung nicht erfüllen, werden nicht an den Ausgabedatenstrom übergeben.

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

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

Das Filterprädikat kann eine beliebige für den Ausführungsprozess verfügbare .NET-Methode aufrufen. Im folgenden Beispiel wird die Math.Abs-Methode aufgerufen.

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

Kulturspezifische Attribute können als Parameter verwendet werden. Im folgenden Beispiel wird das Attribut CultureInfo.InvariantCulture angegeben.

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