用list 接 数值,再讲数值转成 整形数组,排序、再将相邻的数用范围形式表示、...

 

List<int> list1=new List<int>();
                   List<int> list2=new List<int>();
                  
                    foreach (System.Windows.Forms.Control c in panel5.Controls)
                    {
                        if (c is CheckBox)
                        {
                            if (((CheckBox)c).Checked == true)
                            {
                                list1.Add(int.Parse(((CheckBox)c).Text));
                              
                            }
                            else
                            {

                                list2.Add(int.Parse(((CheckBox)c).Text));
                               
                            }
                        }
                    }
                    int[] arr = InsertionSort(list1.ToArray());
                    int[] arrhold = InsertionSort(list2.ToArray());
                    CPYC.normal = zhengli(arr);
                   CPYC.hold = zhengli(arrhold);

/

   /// <summary>
        /// 插入排序法
        /// </summary>
        /// <param name="list"></param>
        public static int[] InsertionSort(int[] list)
        {
            for (int i = 1; i < list.Length; i++)
            {
                int t = list[i];
                int j = i;
                while ((j > 0) && (list[j - 1] > t))
                {
                    list[j] = list[j - 1];
                    --j;
                }
                list[j] = t;
            }
            return list;
        }

/// 整理 将相邻的数值用范围的形式表示  {1,2,3}转成{1-3}

public  string  zhengli (int[] arry)
        {
          
            string stringbuild="";
            int start, end;
            for (int i = 0; i < arry.Length; i++)
            {
                start = arry[i];

                while (i < arry.Length - 1 && arry[i] + 1 == arry[i + 1])
                    i++;

                end = arry[i];

                if (start == end)
                {
                    stringbuild += start.ToString()+",";
                }
                else
                {
                    stringbuild += start + " - " + end+",";
                }
               
            }
            return stringbuild;
        }

转载于:https://my.oschina.net/u/2494395/blog/523644

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值