101
100
67
44
69
45
68
43
102
如何正确取出里面的起始数和终止数上面有三段数
43至45
67至69
100至102

解决方案 »

  1.   


    int[] ary = new int[]{101,
    100,
    67,
    44,
    69,
    45,
    68,
    43,
    102,104
    };
     System.Collections.ArrayList al = new ArrayList(ary);
                 al.Sort();
     ary = (int[])al.ToArray(typeof(System.Int32));

    al = new ArrayList(); for(int i=0;i<ary.Length-1;i++)
    {
    if( i ==0  || ary[i]!= ary[i-1]+1)
    {
    al.Add(ary[i].ToString());
    } if(ary[i]+1 != ary[i+1])
    {
    al[al.Count-1] = al[al.Count-1]+"-"+ary[i];
    }
      //Response.Write(ary[i].ToString()+"<BR>");
     }
    if(ary[ary.Length-1] == ary[ary.Length-2]+1)
    {
    al[al.Count-1] = al[al.Count-1]+"-"+ary[ary.Length-1];
    }
    for(int i=0;i<al.Count;i++)
    {
    Response.Write(al[i].ToString()+"<BR>");
    }