显示出现次数最多的事件,按顺序#
本文关键字:事件 顺序 显示 | 更新日期: 2023-09-27 18:15:29
我有一个由重复项组成的列表,我想创建一个以排名显示它们的输出。例:Tom在上面,因为他有100个条目,lily在下面,因为它有0个条目。
是否可以显示一个列表,其排名与它们在列表中出现的次数相对应?
也显示它们出现在它们旁边的次数?
下面将给出一个IEnumerable
,其中每个项目包含组中的一个代表性项目及其出现的次数。
myList
.GroupBy( item => item.Name )
.OrderByDescending( g => g.Count() )
.Select( g => new {item=g.First(), numOcurrences=g.Count() )
var query = File
.ReadLines("input.txt")
.GroupBy(x => x)
.Select(g => new { Key = g.Key, Count = g.Count() })
.OrderByDescending(i => i.Count)
.Take(20);
foreach (var item in query)
{
Console.WriteLine("{0,5} {1}", item.Count, item.Key);
}
var groups = list.GroupBy(item => item);
var orderedGroups = groups.OrderByDescending(group => group.Count());
foreach (var group in orderedGroups)
{
Console.WriteLine(string.Format("{0} - {1}", group.Key, group.Count());
}
下面是一个简单的LINQ查询,可以远程执行此操作。
List<string> list = new List<string> { "a", "b", "a", "c", "a", "d", "c" };
var counts = from item in list
group item by item
into grp
orderby grp.Count() descending
select new
{
Value = grp.Key,
Count = grp.Count()
};
foreach (var item in counts)
Console.WriteLine("{0} ({1})", item.Value, item.Count);