c# - 返回按重复/重复项目计数排序的唯一列表

标签 c# asp.net linq list distinct

获得我正在寻找的结果的最有效途径是什么?我正在使用 ASP.NET 4.5 和 C#。

假设我有以下 int 列表:

5,7,2,7,8,5,8,0,2,9,8,8,7

我想从列表中删除重复项并按每个项目的出现次数对其进行排序。我知道我可以使用 LINQ 的 Distinct() 使项目独一无二,但我怎样才能使它按出现次数排序?这是上述示例的预期结果:

8,7,5,2,0,9

最佳答案

您可以对项目进行分组,然后按每组中的数量对它们进行排序:

var items = new[] { 5, 7, 2, 7, 8, 5, 8, 0, 2, 9, 8, 8, 7 };
var result = items
    .GroupBy(x => x)
    .OrderByDescending(x => x.Count())
    .Select(x => x.Key);

关于c# - 返回按重复/重复项目计数排序的唯一列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665292/

相关文章:

c# - 找不到 this.Controls - 我错过了什么?

C# - 对结构内的列表进行排序

c# - 保存工作簿时出错 : System. Runtime.InteropServices.COMException:HRESULT 异常:0x800A03EC

c# - PostBack 后 ASP.NET TextBox 值未保留 - session 值正常

asp.net - 有没有更好的方法在mssql中存储大文本?

linq - Linq 查询的这一部分叫什么?

c# - 将 LINQ 动态查询库与 Dictionary<string, object> 和 .AsQueryable() 结合使用

c# - 将 Base64 编码的 CSS 图片上传到 Asp.Net MVC/Web Api

c# - 仅从一个地方进行类实例化的模式?

c# - 连接不包含任何关系的表