필터링

 

이 항목의 예에서는 지정된 조건에 따라 이벤트 스트림을 필터링하는 방법을 보여 줍니다. 필터는 where 절을 통해 표현됩니다. 즉, 필터는 where 절에 정의된 식이 true인 경우에만 이벤트를 출력 스트림으로 전파합니다. 필터는 이벤트 스트림에서 작동하며 이벤트 스트림을 생성합니다.

다음 예에서는 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;