c# - 返回列表中最常出现的字符串
问题描述
我想返回列表中最常出现的文本,以便在方法中返回
我的清单 =((EPlayersStats)x.Value).kList
杰森 ="kList": ["76561198130200574,16561198130200574,26561198130200574,36561198130200574,76561198130200574"]
我该如何进行?
解决方案
可以使用 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")
推荐阅读
- python - 如何使用 Python 限制文本中的某些单词
- c++ - WriteFile 到串行端口正在工作,但写入的字节数为零
- parsing - 解析复杂的数学表达式
- java - java中的图案打印问题:由符号'.'组成的“框架” 和“*”,尺寸 AxB
- java - 面对 java.sql.SQLException:未知系统变量 'query_cache_size'
- javascript - 如何在用户脚本(篡改猴子)中共享我的 API 密钥而不泄露它?
- ruby-on-rails - 在事务中对同一 ActiveRecord 对象进行多次更新后,after_commit 中的陈旧数据
- scala - 根据Scala中其他Seq的值对一个Seq进行排序
- macos - macOS:将 NullAudio 示例缩减为没有输出
- elasticsearch - 如何按弹性搜索响应字段设置特定顺序?