【问题标题】:Return most often present string in list [closed]返回列表中最常出现的字符串[关闭]
【发布时间】:2020-02-15 20:16:52
【问题描述】:

我想返回列表中最常出现的文本,以便在方法中返回

我的列表 = ((EPlayersStats)x.Value).kList

Json = "kList": ["76561198130200574,16561198130200574,26561198130200574,36561198130200574,76561198130200574"]

我该如何进行?

【问题讨论】:

  • 请添加您尝试过的代码。
  • 您所说的列表中最常出现的文本是什么意思?上面代码的预期结果是什么?
  • 基本上我做了一个列表,返回玩家杀死的玩家的 ID。我想拉起被杀最多的那个。

标签: c#


【解决方案1】:

可以通过 LINQ 分组来实现:

myList.Split(',').GroupBy(s => s).OrderByDescending(g => g.Count()).First().Key

这以逗号分隔,将批次转换为分组(每个唯一条目的映射映射到该条目的所有出现的列表),按分组列表中的条目数排序,采用第一个分组和返回它的键

A list of: "a,b,b,c,d,d,d"
Becomes an array: { "a", "b", "b", "c", "d", "d", "d" }
Becomes a grouping:
  g["a"] = new [] { "a" } //Count 1
  g["b"] = new [] { "b", "b" } //count 2
  g["c"] = new [] { "c" } //count 1
  g["d"] = new [] { "d", "d", "d" } //count 3
Orders them by count desc (d wins)
Takes the first grouping (d)
Returns its Key ("d")

【讨论】:

    猜你喜欢
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 2018-05-13
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多