string[] str = { "1", "2", "3", "4", "5", "8", "9", "11", "12", "14", "17" };
List<int> list = new List<int>();
StringBuilder sb = new StringBuilder();
//添加第一个数
sb.Append(str[0]);
for(int i=1;i<str.Length-1;i++)
{
int num1=int.Parse(str[i-1]);
int num2=int.Parse(str[i]);
int num3=int.Parse(str[i+1]);
if(num2-1==num1&&num2+1==num3)
{
sb.Append("-");
}
else if (num2 - 1 == num1 && num2 + 1 != num3)
{
sb.Append("-"+str[i]);
}
else
{
sb.Append(","+str[i]);
}
//当i=str.Length-2时 对最后两个元素进行判断
if (i == str.Length - 2 && num2 + 1 == num3)
{
sb.Append("-" + str[i + 1]);
}
else if(i==str.Length-2&&num2+1!=num3)
{
sb.Append(","+str[i+1]);
}
}
Console.WriteLine(Regex.Replace(sb.ToString(),@"-+","-")); |