【问题标题】:ordering based on count of values in column when getting distinct values [duplicate]获取不同值时根据列中值的计数进行排序[重复]
【发布时间】:2016-06-28 23:35:16
【问题描述】:
var acts = new List<MyClass>(new[] {
        new MyClass { Date = DateTime.Parse("01/01/2011"), acty = "james" },
        new MyClass { Date = DateTime.Parse("01/01/2011"), acty = "james" },
        new MyClass { Date = DateTime.Parse("01/01/2011"), acty = "alex" },
        new MyClass { Date = DateTime.Parse("01/01/2011"), acty = "james" },
        new MyClass { Date = DateTime.Parse("02/01/2011"), acty = "matt" },
        new MyClass { Date = DateTime.Parse("02/01/2011"), acty  = "jamie" },
        new MyClass { Date = DateTime.Parse("02/01/2011"), acty = "alex" },
        new MyClass { Date = DateTime.Parse("02/01/2011"), acty = "james" },
        new MyClass { Date = DateTime.Parse("02/01/2011"), acty = "james" },
        new MyClass { Date = DateTime.Parse("02/01/2011"), acty = "lucy" },
        new MyClass { Date = DateTime.Parse("02/01/2011"), acty = "alex" },
        new MyClass { Date = DateTime.Parse("03/01/2011"), acty = "james" },
        new MyClass { Date = DateTime.Parse("03/01/2011"), acty = "bob" },
        new MyClass { Date = DateTime.Parse("03/01/2011"), acty = "bob" },
        new MyClass { Date = DateTime.Parse("03/01/2011"), acty = "james" },
        new MyClass { Date = DateTime.Parse("03/01/2011"), acty = "james" },
        new MyClass { Date = DateTime.Parse("04/01/2011"), acty = "alex" },
        new MyClass { Date = DateTime.Parse("04/01/2011"), acty = "alex" },
        new MyClass { Date = DateTime.Parse("04/01/2011"), acty = "alex" }
    });

要从列表中获取不同的值,我使用以下代码..

var dacts =acts.Select(o => o.acty).Distinct().ToList();

我需要一些帮助,以根据实际计数降序对 dact 进行排序。

我查看了Linq distinct - Count,与我的要求不同。

上述问题得到一列的不同值和另一列的不同计数。

但是,在我的情况下,我想要按同一列的计数排序的列的不同值

所以,我希望我的答案是..

詹姆斯、亚历克斯、鲍勃、杰米、露西、马特

【问题讨论】:

  • 我想要按同一列的计数排序的列的不同值 您是否尝试过根据自己的情况调整副本中的代码?只需填写正确的属性名称即可。

标签: linq


【解决方案1】:
var dacts = acts.Select(o => o.acty).Distinct().OrderByDescending().ToList();

试试这个。

 var distinctNames = acts.GroupBy(m => m.acty).Select(grp => new { name = grp.Key, count = grp.Count() }).OrderByDescending(k => k.count).ToList();

【讨论】:

  • 不是按acty的值而是按acty的值降序排列
  • 什么是实际价值? acty 是类类型吗?给我看看你的代码。
  • acty 是可枚举行为中的一个元素(col)
猜你喜欢
  • 1970-01-01
  • 2022-11-14
  • 1970-01-01
  • 2020-06-02
  • 2017-12-06
  • 2021-09-02
  • 1970-01-01
  • 2011-10-28
相关资源
最近更新 更多