Фильтрация
В примере из этого раздела показано, как отфильтровать поток событий по указанным условиям. Фильтры задаются в предложении where. Это значит, что фильтр передает событие в выходной поток только в случае, если результатом выражения, определенного в предложении where, является значение true. Фильтр обрабатывает событие CepStream<T> и выдает в результате событие CepStream<T>.
Примеры
В следующем примере события в потоке событий someStream ограничиваются событиями, в которых значение поля полезных данных i больше 10. События, не соответствующие этому условию, не передаются в выходной поток.
// Assuming the following input event type:
public class MyPayload
{
public int i;
}
var queryFilter = from c in someStream
where c.i > 10
select c;
Предикат фильтра может вызывать любой метод .NET, доступный выполняющемуся процессу. В следующем примере вызывается метод Math.Abs.
var queryFilter = from c in someStream
where Math.Abs(c.i) > 10
select c;
В качестве параметров могут использоваться атрибуты, зависящие от культуры. В следующем примере указывается атрибут CultureInfo.InvariantCulture.
var queryFilter = from c in someStream
where string.Compare(Convert.ToString(c.value),
c.str,
true,
CultureInfo.InvariantCulture) > 0
select c;