现在有一个点的数组,我想按照一定的规则取当中的点存到另一个数组里面例如:第一个点和第二点进行比较,如果满足条件,两个点都存到新数组里面,然后第二点和第三个点进行比较,如果不满足条件第二个点再和第四个点进行比较,满足条件存,不满足再和下一个点比较。已此类推!~~这个算法我没想出来,请各位帮忙想想,谢谢啦

解决方案 »

  1.   

    foreach (Point p in ...)
    {
      ...
    }
      

  2.   


    int size = 100;
                object[] array = new object[size];
                object[] result = new object[size];
                //初始化
                int pos = 1, j = 0,count = 0;
                object obj = array[0];
                while (pos < size)
                {
                    if(判断条件(obj,array[pos]))
                    {
                        result[count++] = obj;
                        result[count++] = array[pos];
                        if(pos >= size - 1)
                        {
                            break;
                        } else
                        {
                            obj = array[pos + 1];
                            pos+=2;
                        }
                    } else
                    {
                        pos++;
                    }
                }可能出现最后一个元素没有东西和他比较的情况
      

  3.   

    Try....Point[] ps=......;
    ArrayList lis;
    for(int i=0;i<ps.Length;i++)
    {
     int pos=i+1;
     while(pos<ps.Length&&ps[i]和ps[pos]比较不成立)
     {
      pos++;
     }
     if(pos==ps.Length) break;
      list.Add(ps[i]);
      if(!list.Contains(ps[i+1])) list.Add(ps[i+1]);
    }