数字字符串转换为区间表示

原:1,2,3,5,6,7,9,10,12

转后:1~3,5~7,9~10,12

         /// <summary>
         /// 字符串号换为区间式
          /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string ToInterval(string str)
        {
            int[] arraystr = TointArray(str.Trim(',').Split(','));
            Array.Sort(arraystr);
            string Rstr = "", z = "";
            z = arraystr[arraystr.Length - 1].ToString();
            for (int i = 1; i < arraystr.Length; i++)
            {
                if (arraystr[i] - arraystr[i - 1] != 1)
                {
                    Rstr += arraystr[i - 1] + ",";
                }
                else if (string.IsNullOrEmpty(Rstr) || Rstr.Substring(Rstr.Length - 1, 1) != "~")
                {
                    Rstr += arraystr[i - 1] + "~";
                }
            }
            return (Rstr + z).Trim(',');
        }

        public static int[] TointArray(string[] str)
        {
            int[] ccc = new int[str.Length];
            for (int i = 0; i < str.Length; i++)//将全部的数字存到数组里。
            {
                ccc[i] = Convert.ToInt32(str[i].ToString());
            }
            return ccc;
        }
原文地址:https://www.cnblogs.com/yuking/p/3622729.html