显示出现次数最多的事件,按顺序#

本文关键字:事件 顺序 显示 | 更新日期: 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);