【问题标题】:sort list with C# by how often same strings appear in list使用 C# 按相同字符串在列表中出现的频率对列表进行排序
【发布时间】:2020-02-01 11:02:21
【问题描述】:

我有一个清单:

dave
maggie
john
stuart
john
john
dave
john
maggie
maggie

我想要的结果是:

john
john
john
john
maggie
maggie
maggie
dave
dave
stuart

【问题讨论】:

标签: c# arrays list linq sorting


【解决方案1】:

首先我将它们分组。然后按每个组的计数对它们进行排序。最后使用 SelectMany 从组中的每个单独名称中获取平面结构。

var myList = new List<string>()
{
    "dave",
    "maggie",
    "john",
    "stuart",
    "john",
    "dave",
    "john",
};

var result = myList
    .GroupBy(x => x)
    .OrderByDescending(x => x.Count())
    .SelectMany(x => x)
    .ToList();

【讨论】:

  • @Stefan 是的。 SelectMany 接受一个返回 IEnumerable&lt;T&gt; 的函数,GroupBy 返回一个 IEnumerable&lt;T&gt;
猜你喜欢
  • 2014-06-19
  • 2020-06-13
  • 2021-01-20
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2021-12-20
  • 2021-06-10
相关资源
最近更新 更多