原列表为:
Cat
Dog
Mouse
Cat
Bat
Alpaca
Bat
预期结果:
Bat
Bat
Cat
Cat
Alpaca
Dog
Mouse
结果首先显示名称出现的频率,然后按字母顺序排序。 谁能帮我用 C# 和 LINQ 解决这个问题?
答案 0 :(得分:2)
您可以使用 group by 来执行此操作:
var input = new List<string> { "Cat", "Dog", "Mouse", "Cat", "Bat", "Alpaca", "Bat" };
var result = input.GroupBy(x => x).OrderByDescending(x => x.Count()).ThenBy(x => x.Key).SelectMany(x => x).ToList();