다음을 통해 공유


필터링

이 항목의 예에서는 지정된 조건에 따라 이벤트 스트림을 필터링하는 방법을 보여 줍니다. 필터는 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;

Culture 관련 특성을 매개 변수로 사용할 수 있습니다. 다음 예에서는 CultureInfo.InvariantCulture 특성을 지정합니다.

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