我有以下查询,我正试图通过TCount获得TopicCounts的前4名:
var bygroup = (from element in inputSplit
group element by element.Text into groups
from win in groups.TumblingWindow(TimeSpan.FromSeconds(10))
select new TopicCounts
{
Topic = groups.Key,
TCount = win.Count(),
Score = win.Avg(element => element.Sen)
}
).OrderByDescending(x => x.TCount).Distinct().Take(4);
每当我尝试构建时,我都会收到以下错误:
'Microsoft.ComplexEventProcessing.Linq.IQStreamable' 不包含'OrderByDescending'的定义,也没有扩展名 方法'OrderByDescending'接受类型
的第一个参数'Microsoft.ComplexEventProcessing.Linq.IQStreamable' 可以找到(你错过了使用指令或程序集 引用?)
我错过了什么?
答案 0 :(得分:0)
IQStreamable无法对其进行排序,因为它是一个流(因为需要整个集合,因此需要加载元素)。要对其进行排序,您需要加载整个集合。这可以通过在排序之前调用ToList来完成,但是如果集合很大,则最终会占用大量内存。