篩選

 

本主題的範例將示範如何根據指定的條件來篩選事件資料流。 篩選是透過 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;  

文化特性特有的屬性 (Attribute) 可以當做參數使用。 以下範例指定了 CultureInfo.InvariantCulture 屬性。

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