筛选

 

本主题中的示例演示如何基于指定的条件筛选事件流。 筛选器通过 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;  

特定于区域性的属性可用作参数。 下面的示例指定 CultureInfo.InvariantCulture 属性。

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