MMTTMM
您可以按值对数据进行分组,对组进行排序,然后在记住计数的情况下迭代组 - 每次递减并在达到零时删除事物,或者增加计数器并仅输出至少人口众多的事物。就像是:var values = new[] { 5, 2, 2, 1, 3, 3, 4 };var data = new SortedDictionary<int, int>();foreach(var val in values){ int count; if (!data.TryGetValue(val, out count)) count = 0; data[val] = count + 1;}int lim = 0;bool any;do{ any = false; foreach (var pair in data) if (pair.Value > lim) { Console.WriteLine(pair.Key); any = true; } lim++;} while (any);