使用LINQ和C#从分组列表中获取MAX 5项
本文关键字:列表 获取 MAX 5项 LINQ 使用 | 更新日期: 2023-09-27 18:20:49
我有一个按名称分组的项目列表。
例如,我有项目[0]有4个项目,项目[1]有6个项目,项[2]有10个项目等。
现在我想得到最多5个项目,即这个GroupedList中项目最多的项目。
我得到的分组列表如下:-
IEnumerable<List<AuditLog>> auditLogsGouped = auditLogs.GroupBy(x => x.EntityValue).Select(grp => grp.ToList());
如何从该列表中获取MAX 5项目?
感谢您的帮助和时间
这应该对你有好处:
auditLogsGouped.OrderBy(x=>x.Count).Reverse().Take(5);
或更好:
auditLogsGouped.OrderByDescending(x=>x.Count).Take(5);
您应该看看Enumerable.Take
。以下是文档和相关部分:
public static IEnumerable<TSource> Take<TSource>(
this IEnumerable<TSource> source,
int count
)
Take枚举源并生成元素,直到计数元素已生成,或者源不再包含元素。如果count超过源中的元素数,源的所有元素返回。
因此,只需调用.Take(5)