您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

一种统计列表中出现次数的方法

一种统计列表中出现次数的方法

这样的事情怎么样…

var l1 = new List<int>() { 1,2,3,4,5,2,2,2,4,4,4,1 };

var g = l1.GroupBy( i => i );

foreach( var grp in g )
{
  Console.WriteLine( "{0} {1}", grp.Key, grp.Count() );
}

根据评论编辑:我将尽力做到这一点。:)

在我的示例中,这是Func<int, TKey>因为我的列表是整数。因此,我要告诉GroupBy如何对我的物品进行分组。Func接受一个int并返回用于我的分组的密钥。在这种情况下,我将得到一个IGrouping<int,int>(一组由int键控的int)。i => i.ToString()例如,如果将其更改为(),则将按字符串对分组进行键控。您可以想像一个比通过“ 1”,“ 2”,“ 3”键入键更简单的示例……也许我创建了一个返回“一个”,“两个”,“三个”作为我键的函数

private string SampleMethod( int i )
{
  // magically return "One" if i == 1, "Two" if i == 2, etc.
}

因此,这是一个Func,它将接受一个int并返回一个字符串,就像…

i =>  // magically return "One" if i == 1, "Two" if i == 2, etc.

但是,由于原始问题要求知道原始列表值及其计数,因此我仅使用整数来键入整数分组,以使示例更简单。

其他 2022/1/1 18:14:19 有340人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶