【问题标题】:Finding the same values C#找到相同的值 C#
【发布时间】:2016-09-15 16:26:07
【问题描述】:

我只是想知道找到相同值的最简单方法是什么?我只是初学者,所以我正在寻找最简单的方法,没有任何向量等。 例如,我需要对 Streets 进行排序:

  • 一街

  • 2街

  • 一街

  • 三街

答案肯定是这里最常被命名为“1street”。

【问题讨论】:

标签: sorting


【解决方案1】:

假设您有一个包含您的项目的List<string>

List<string> myList = PopulateList(...);  // fill the list with names

如果只想对列表进行排序,可以使用List.Sort

myList.Sort();

然后您可以通过循环遍历列表来计算重复项并确定哪个最频繁。

或者,您可以对项目进行分组,然后按计数、降序对分组进行排序,然后取出第一项。

var mostCommon = 
    myList.GroupBy(x => x)
          .OrderByDescending(g => g.Count())
          .First();

然后mostCommon.Key 会告诉你最常见的项目,mostCommon.Count() 会告诉你有多少项目。

或者,如果您想要{name, count} 的列表,按计数排序:

var groupedAndSorted =
    myList.GroupBy(x => x)
          .Select(x => new {Key=x.Key, Count=x.Count()})
          .OrderByDescending(x => x.Count)
          .ToList();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-21
    • 2014-01-26
    • 2021-10-12
    • 2020-04-23
    • 2019-04-05
    • 2017-11-02
    • 1970-01-01
    • 2017-07-24
    相关资源
    最近更新 更多