OrderByDescending(TPayload, TOrderKey) 方法
通过 rankSelector 以降序对输入流排序。
命名空间: Microsoft.ComplexEventProcessing.Linq
程序集: Microsoft.ComplexEventProcessing(在 Microsoft.ComplexEventProcessing.dll 中)
语法
public static CepOrderedStream<TPayload> OrderByDescending<TPayload, TOrderKey>(
this CepOrderableStream<TPayload> source,
Expression<Func<TPayload, TOrderKey>> rankSelector
)
类型参数
- TPayload
输入事件的负载类型。
- TOrderKey
排序键的类型。
参数
- source
类型:Microsoft.ComplexEventProcessing.Linq. . :: . .CepOrderableStream< (Of < ( <'TPayload> ) > ) >
要对其进行排序的流源。
- rankSelector
类型:System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'TPayload, TOrderKey> ) > ) >> ) > ) >
其值用于按其彼此对事件进行比较的表达式。
返回值
类型:Microsoft.ComplexEventProcessing.Linq. . :: . .CepOrderedStream< (Of < ( <'TPayload> ) > ) >
可进一步排名的(例如,通过使用 Take())排序流。
用法说明
在 Visual Basic 和 C# 中,您可以对 CepOrderableStream< (Of < ( <'TPayload> ) > ) > 类型的任何对象将此方法作为实例方法调用。在您使用实例方法语法调用此方法时,将忽略第一个参数。有关详细信息,请参阅https://msdn.microsoft.com/zh-cn/library/bb384936(v=sql.105)或https://msdn.microsoft.com/zh-cn/library/bb383977(v=sql.105)。
注释
有关详细信息,请参阅 TopK。
示例
下面的示例从为输入流 inputStream 定义的每个快照窗口获取排名最高的五个事件,并生成一个新事件流。每个窗口中的事件按负载字段 e.f 中值的升序以及负载字段 e.i 中值的降序进行排序。
// Assuming the following input event type for inputStream:
public class MyPayload
{
public int f;
public int i;
}
var topfive = (from window in inputStream.Snapshot(SnapshotWindowOutputPolicy.Clip)
from e in window
orderby e.f ascending, e.i descending
select e).Take(5);