arraylist数组参数设置问题,求解,急……
问题:
把二维数组每一列编号存储在arrayLianHao中,当每一列元素“1”的个数少于2时,删除此列,并删除arrayLianHao中对应编号。然后二维数组每一列两两作“与”运算,arrayLianHao中对应元素连接,如:二维数组第一列与第二列作“与”运算,则arrayLianHao中第一列和第二列编号连接,成为“01”,依次类推,形成新数组。
代码错误(红色部分):
未处理 ArgumentOutOfRangeException
索引超出范围。必须为非负值并小于集合大小。参数名:index
     class Program
     {
         static void Main(string[] args)
         {
             ArrayList arrayLianHao = new ArrayList();
             string []number1 = { "0", "1", "2", "3", "4", "5" };
             arrayLianHao.AddRange(number1);
            int[,] arrayYuanShi = {{0,0,0,0,0,0},{0,1,0,1,0,0},{1,0,1,0,1,0},{1,1,1,0,1,0},{0,0,1,0,1,0}};
            bool Flag; int k; k = arrayYuanShi.GetLength(1);  ArrayList arrayLianHao1 = new ArrayList();
             do
             {
                 int countPD = 0;   
               int[]arrayPD = PanDuan(arrayYuanShi,k,arrayLianHao);
                 for(int i = 0;i<arrayPD.Length;i++){countPD ++;}
                 if (countPD == 0) { break;}                                 
                 Console.WriteLine(arrayYuanShi.GetLength(1));
                 Console.ReadLine();                 
             int[,]arrayXJZ = XinJuZhen(arrayYuanShi,arrayPD , k);                  
                 for(int m = 0;m< arrayXJZ.GetLength(0);m++)
                 {
                   for(int n = 0;n<arrayXJZ.GetLength(1);n++)
                   {Console.Write(arrayXJZ[m,n]);}
                     Console.WriteLine();
                 }
                  Console.ReadLine();
                  k = arrayYuanShi.GetLength(1) - countPD;                  
                 int [,] arrayYCZ = YuCaoZuo( arrayXJZ,countPD,k,arrayLianHao,arrayLianHao1);
                 for(int b = 0;b<5;b++)
                     {
                      for(int c = 0;c<k*(k-1)/2;c++ )
                      {Console.Write(arrayYCZ[b,c]);}
                      Console.WriteLine();
                      }   
                       Console.ReadLine();
                       for (int i = 0; i < 5; i++)
                           for (int j = 0; j < 6; j++)
                           {
                               arrayYuanShi[i, j] = 0;
                               arrayYuanShi[i, j] = arrayYCZ[i, j];
                           }
                       arrayLianHao.Clear();
                for (int x= 0; x < k * (k - 1) / 2; x++)
                    arrayLianHao.Add(arrayLianHao1[x]);[b][/b]                k = k * (k - 1) / 2;
                     if (countPD == 0) Flag = false;
                     else Flag = true;               
             }while(Flag);
             for (int i = 0; i < arrayLianHao.Count; i++)
             { Console.WriteLine(arrayLianHao[i]); }
             Console.ReadLine();
                 Console.WriteLine("ok!");
             Console.ReadLine();
        }                             
         public static int[] PanDuan(int[,] arrayYuanShi,int k,ArrayList arrayLianHao)  
           {
             int count = 0;
               for(int j = 0;j < k;j++)
               {
                 count = 0;
                   for(int i = 1;i<arrayYuanS