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;