【发布时间】:2011-04-07 15:37:41
【问题描述】:
我有一个可枚举的实体集合,这些实体来自 Linq2Sql(现阶段已将它们枚举到一个数组中)。该集合可能(可能会)包含同一实体的多次出现。我将如何对集合进行排序,以便将最常出现的实体移到前面?
IEnumerable<Entity> results = SearchForEntities(searchCriteria);
return results.OrderByDescending(e => /* Number of occurences in results? */)
.Distinct()
.Take(maxSearchResults);
对我应该在 OrderByDescending 表达式中添加什么有任何帮助吗?
提前致谢! :)
编辑:根据要求进行澄清。集合中多次出现的实体具有唯一 ID,但不是对同一对象的引用。
【问题讨论】:
-
所以你不在乎某些实体被删除了?您选择的答案只返回每组的第一个。
-
是的,这是我的意图,从 .Distinct 调用中不是很明显吗?
-
啊,不知怎的,我完全错过了。
标签: c# linq sql-order-by ienumerable