我读出一个数组
 例如 里边的数据  是 2010001,2010002,2010003,2010004,2010005,2010006,2010007,2010008,2010009,2010031,2010032,,2010033,2010034,2010035,2010036,2010037,2010038,2010039,2010040,2010800,2010801,2010802,2010803,2010804,2010805
上边这是数组里边的数据2010001---2010009
2010031---2010040
2010801---2010805
让它们这样分组了。怎么弄啊。。 在线等

解决方案 »

  1.   

    网上很多例子  说的很详细了      跟sql差不多! 会sql的一看就懂
      

  2.   

    自已写代码也不麻烦。
    int [][] darr=new int[3][10240];
    for(int i=0;i<array.length;i++)
    {
      if( array[i] 符合第一个规则 darr[0][j1++]=array[i];
    if( array[i] 符合第二个规则 darr[0][j2++]=array[i];
    .......}
      

  3.   


    private void button1_Click(object sender, EventArgs e)
            {
                int[] datas = new int[] { 2010001, 2010002, 2010003, 2010004, 2010005, 2010006, 2010007, 2010008, 2010009, 2010031, 2010032, 2010033, 2010034, 2010035, 2010036, 2010037, 2010038, 2010039, 2010040, 2010800, 2010801, 2010802, 2010803 };
                List<List<int>> groups = new List<List<int>>();
                int t = int.MinValue;
                var result = datas.Aggregate(new List<List<int>>(), (container, x) =>
                {
                    if (x - t > 1 || groups.Count == 0)
                    {
                        List<int> tl = new List<int>();
                        tl.Add(x);
                        groups.Add(tl);
                    }
                    else
                    {
                        groups[groups.Count - 1].Add(x);
                    }
                    t = x;
                    return container;
                })
        .Select(lst => lst.ToArray());
                foreach (List<int> group in groups)
                {
                    group.Sort();
                    StringBuilder txtBuilder = new StringBuilder();
                    foreach (int i in group)
                    {
                        txtBuilder.Append(i.ToString() + "\t");
                    }
                    MessageBox.Show(txtBuilder.ToString());
                }
            }
      

  4.   

    上面贴的代码不可用么?
    稍微优化一下private void button1_Click(object sender, EventArgs e)
    {
        int[] datas = new int[] { 2010001, 2010002, 2010003, 2010004, 2010005, 2010006, 2010007, 2010008, 2010009, 2010031, 2010032, 2010033, 2010034, 2010035, 2010036, 2010037, 2010038, 2010039, 2010040, 2010800, 2010801, 2010802, 2010803 };
        List<List<int>> groups = new List<List<int>>();
        int t = int.MinValue;
        datas.Aggregate((container, x) =>
        {
            if (x - t > 1 || groups.Count == 0)
            {
                List<int> tl = new List<int>();
                tl.Add(x);
                groups.Add(tl);
            }
            else
            {
                groups[groups.Count - 1].Add(x);
            }
            t = x;
            return container;
        });
        foreach (List<int> group in groups)
        {
            group.Sort();
            StringBuilder txtBuilder = new StringBuilder();
            foreach (int i in group)
            {
                txtBuilder.Append(i.ToString() + "\t");
            }
            MessageBox.Show(txtBuilder.ToString());
        }
    }
      

  5.   

     for(int i=0;i<arr.length;i++)
    {
       for(int j=0;j<5;j++)
       {
          if(j=4)
          {"代码<br>"}
          else
          {
             "代码"
          }
          
       }
    }
    意思分 5 一个组 满 5转行
      

  6.   

    for(int i=0;i<arr.length;i++)
    {
      if(i mod 4)
      {代码+换行符}
      else{代码}
    }
    意思分 5 一个组 满 5转行上面那个有错
      

  7.   

     datas.Aggregate((container, x) =>
        {
            if (x - t > 1 || groups.Count == 0)
            {
                List<int> tl = new List<int>();
                tl.Add(x);
                groups.Add(tl);
            }
            else
            {
                groups[groups.Count - 1].Add(x);
            }
            t = x;
            return container;
        });这段是干吗用的啊? C#里边报错啊..
      

  8.   

    你vs2005?public List<List<int>> lambda_and_linq01(int[] datas)
    {
        List<List<int>> groups = new List<List<int>>();
        int t = int.MinValue;
        foreach (int x in datas)
        {
            if (x - t > 1 || groups.Count == 0)
            {
                List<int> tl = new List<int>();
                tl.Add(x);
                groups.Add(tl);
            }
            else
            {
                groups[groups.Count - 1].Add(x);
            }
            t = x;
        }
        return groups;
    }
      

  9.   

    调用int[] datas = new int[] { 2010001, 2010002, 2010003, 2010004, 2010005, 2010006, 2010007, 2010008, 2010009, 2010031, 2010032, 2010033, 2010034, 2010035, 2010036, 2010037, 2010038, 2010039, 2010040, 2010800, 2010801, 2010802, 2010803 };
                List<List<int>> groups = lambda_and_linq01(datas);
                foreach (List<int> group in groups)
                {
                    group.Sort();
                    StringBuilder txtBuilder = new StringBuilder();
                    foreach (int i in group)
                    {
                        txtBuilder.Append(i.ToString() + "\t");
                    }
                    MessageBox.Show(txtBuilder.ToString());
                }
      

  10.   

    好了。。 谢谢wuyazhe 啊