为了账号安全,请及时绑定邮箱和手机立即绑定

C#按顺序分区排序数字

C#按顺序分区排序数字

C#
慕慕森 2021-08-07 16:12:59
我的数据如下:5 2 2 1 3 3 4我想在 C# 中输出如下:1 2 3 4 5 2 3所以基本上所有的唯一值首先按 ASC 顺序排序,而不是从剩余的项目开始......
查看完整描述

2 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

您可以按值对数据进行分组,对组进行排序,然后在记住计数的情况下迭代组 - 每次递减并在达到零时删除事物,或者增加计数器并仅输出至少人口众多的事物。就像是:


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);


查看完整回答
反对 回复 2021-08-07
  • 2 回答
  • 0 关注
  • 181 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信