【发布时间】:2016-09-15 16:26:07
【问题描述】:
我只是想知道找到相同值的最简单方法是什么?我只是初学者,所以我正在寻找最简单的方法,没有任何向量等。 例如,我需要对 Streets 进行排序:
一街
2街
一街
三街
答案肯定是这里最常被命名为“1street”。
【问题讨论】:
-
在您的标题中,您要求查找相同的值,而在您的问题中,您要求进行排序
标签: sorting
我只是想知道找到相同值的最简单方法是什么?我只是初学者,所以我正在寻找最简单的方法,没有任何向量等。 例如,我需要对 Streets 进行排序:
一街
2街
一街
三街
答案肯定是这里最常被命名为“1street”。
【问题讨论】:
标签: sorting
假设您有一个包含您的项目的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();
【讨论】: