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