Linq 林克:小组结束后再看最重要的元素
我有以下查询,我正在尝试按TCount获取TopicCounts的前4名:Linq 林克:小组结束后再看最重要的元素,linq,streaminsight,Linq,Streaminsight,我有以下查询,我正在尝试按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 TopicCo
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'
无法找到(是否缺少using指令或程序集
参考?)
我错过了什么 不能对IQStreamable进行排序,因为它是一个流(流按需要加载元素,排序需要整个集合)。为了对其进行排序,您需要加载整个集合。这可以通过在排序之前调用ToList来完成,但是如果集合很大,则最终会导致内存使用率很高。感谢您的提示,.ToList没有起作用,但我最终构建了一个新的用户定义运算符,将我的窗口元素放入列表中,然后返回TopK。