退出循环后所有列表项的c#怪异重置,

时间:2017-02-25 19:22:53

标签: c# arrays list

我有一个9,9矩阵,我想检查哪里有0,如果我找到0我创建一个11大小的数组,其中包含0(i和j)和1-9数字的位置 并且它将被添加到列表中,它将找到下一个0 add和soo。

    public static void CheckandCreate()
    {
        int[] sector = new int[11];
        //setting the array to  1-9
        for (int i = 2; i < sector.Length; i++)
        {
            sector[i] = i - 1;
        }
        //looking for 0
        for (int i = 0; i < suduku.GetLength(0); i++)
        {
            for (int j = 0; j < suduku.GetLength(1); j++)
            {
                //finding 0
                if (suduku[i, j] == 0)
                {
                    sector[0] = i;
                    sector[1] = j;
                    sectorlist.Add(sector);
                    Console.WriteLine("Found Empty on " + i + " " + j);
                    //check to see array
                    sectorprinter(sector);
                    //check to if the array is on list and also print from list(check)
                    sectorprinter(sectorlist[sectorlist.IndexOf(sector)]);
                }
            }
            //check to see if its still keeps the same value as before,this is where it failes!
            Console.WriteLine();
            sectorprinter(sectorlist[3]);
            Console.WriteLine();
        }
        Console.WriteLine(sectorlist.Capacity);
        Console.WriteLine();
    }

这就是代码 这是列表制作:

   static List<int[]> sectorlist = new List<int[]>();

毕竟我打印所有扇区(所有阵列)....

这是输出:

           Found Empty on 0 1
           0 1 1 2 3 4 5 6 7 8 9
           0 1 1 2 3 4 5 6 7 8 9
           Found Empty on 0 2
           0 2 1 2 3 4 5 6 7 8 9
           0 2 1 2 3 4 5 6 7 8 9
           Found Empty on 0 4
           0 4 1 2 3 4 5 6 7 8 9
           0 4 1 2 3 4 5 6 7 8 9
           Found Empty on 0 6
           0 6 1 2 3 4 5 6 7 8 9
           0 6 1 2 3 4 5 6 7 8 9
           Found Empty on 0 7
           0 7 1 2 3 4 5 6 7 8 9
           0 7 1 2 3 4 5 6 7 8 9

           0 7 1 2 3 4 5 6 7 8 9

           Found Empty on 1 0
           1 0 1 2 3 4 5 6 7 8 9
           1 0 1 2 3 4 5 6 7 8 9
           Found Empty on 1 1
           1 1 1 2 3 4 5 6 7 8 9
           1 1 1 2 3 4 5 6 7 8 9
           Found Empty on 1 2
           1 2 1 2 3 4 5 6 7 8 9
           1 2 1 2 3 4 5 6 7 8 9
           Found Empty on 1 3
           1 3 1 2 3 4 5 6 7 8 9
           1 3 1 2 3 4 5 6 7 8 9
           Found Empty on 1 4
           1 4 1 2 3 4 5 6 7 8 9
           1 4 1 2 3 4 5 6 7 8 9
           Found Empty on 1 5
           1 5 1 2 3 4 5 6 7 8 9
           1 5 1 2 3 4 5 6 7 8 9
           Found Empty on 1 7
           1 7 1 2 3 4 5 6 7 8 9
           1 7 1 2 3 4 5 6 7 8 9
           Found Empty on 1 8
           1 8 1 2 3 4 5 6 7 8 9
           1 8 1 2 3 4 5 6 7 8 9

           1 8 1 2 3 4 5 6 7 8 9

           Found Empty on 2 0
           2 0 1 2 3 4 5 6 7 8 9
           2 0 1 2 3 4 5 6 7 8 9
           Found Empty on 2 2
           2 2 1 2 3 4 5 6 7 8 9
           2 2 1 2 3 4 5 6 7 8 9
           Found Empty on 2 3
           2 3 1 2 3 4 5 6 7 8 9
           2 3 1 2 3 4 5 6 7 8 9
           Found Empty on 2 4
           2 4 1 2 3 4 5 6 7 8 9
           2 4 1 2 3 4 5 6 7 8 9
           Found Empty on 2 5
           2 5 1 2 3 4 5 6 7 8 9
           2 5 1 2 3 4 5 6 7 8 9
           Found Empty on 2 8
           2 8 1 2 3 4 5 6 7 8 9
           2 8 1 2 3 4 5 6 7 8 9

           2 8 1 2 3 4 5 6 7 8 9

           Found Empty on 3 1
           3 1 1 2 3 4 5 6 7 8 9
           3 1 1 2 3 4 5 6 7 8 9
           Found Empty on 3 3
           3 3 1 2 3 4 5 6 7 8 9
           3 3 1 2 3 4 5 6 7 8 9
           Found Empty on 3 5
           3 5 1 2 3 4 5 6 7 8 9
           3 5 1 2 3 4 5 6 7 8 9
           Found Empty on 3 8
           3 8 1 2 3 4 5 6 7 8 9
           3 8 1 2 3 4 5 6 7 8 9

           3 8 1 2 3 4 5 6 7 8 9

           Found Empty on 4 0
           4 0 1 2 3 4 5 6 7 8 9
           4 0 1 2 3 4 5 6 7 8 9
           Found Empty on 4 1
           4 1 1 2 3 4 5 6 7 8 9
           4 1 1 2 3 4 5 6 7 8 9
           Found Empty on 4 2
           4 2 1 2 3 4 5 6 7 8 9
           4 2 1 2 3 4 5 6 7 8 9
           Found Empty on 4 3
           4 3 1 2 3 4 5 6 7 8 9
           4 3 1 2 3 4 5 6 7 8 9
           Found Empty on 4 5
           4 5 1 2 3 4 5 6 7 8 9
           4 5 1 2 3 4 5 6 7 8 9
           Found Empty on 4 6
           4 6 1 2 3 4 5 6 7 8 9
           4 6 1 2 3 4 5 6 7 8 9
           Found Empty on 4 7
           4 7 1 2 3 4 5 6 7 8 9
           4 7 1 2 3 4 5 6 7 8 9
           Found Empty on 4 8
           4 8 1 2 3 4 5 6 7 8 9
           4 8 1 2 3 4 5 6 7 8 9

           4 8 1 2 3 4 5 6 7 8 9

           Found Empty on 5 0
           5 0 1 2 3 4 5 6 7 8 9
           5 0 1 2 3 4 5 6 7 8 9
           Found Empty on 5 3
           5 3 1 2 3 4 5 6 7 8 9
           5 3 1 2 3 4 5 6 7 8 9
           Found Empty on 5 5
           5 5 1 2 3 4 5 6 7 8 9
           5 5 1 2 3 4 5 6 7 8 9
           Found Empty on 5 7
           5 7 1 2 3 4 5 6 7 8 9
           5 7 1 2 3 4 5 6 7 8 9

           5 7 1 2 3 4 5 6 7 8 9

           Found Empty on 6 0
           6 0 1 2 3 4 5 6 7 8 9
           6 0 1 2 3 4 5 6 7 8 9
           Found Empty on 6 3
           6 3 1 2 3 4 5 6 7 8 9
           6 3 1 2 3 4 5 6 7 8 9
           Found Empty on 6 4
           6 4 1 2 3 4 5 6 7 8 9
           6 4 1 2 3 4 5 6 7 8 9
           Found Empty on 6 5
           6 5 1 2 3 4 5 6 7 8 9
           6 5 1 2 3 4 5 6 7 8 9
           Found Empty on 6 6
           6 6 1 2 3 4 5 6 7 8 9
           6 6 1 2 3 4 5 6 7 8 9
           Found Empty on 6 8
           6 8 1 2 3 4 5 6 7 8 9
           6 8 1 2 3 4 5 6 7 8 9

           6 8 1 2 3 4 5 6 7 8 9

           Found Empty on 7 0
           7 0 1 2 3 4 5 6 7 8 9
           7 0 1 2 3 4 5 6 7 8 9
           Found Empty on 7 1
           7 1 1 2 3 4 5 6 7 8 9
           7 1 1 2 3 4 5 6 7 8 9
           Found Empty on 7 3
           7 3 1 2 3 4 5 6 7 8 9
           7 3 1 2 3 4 5 6 7 8 9
           Found Empty on 7 4
           7 4 1 2 3 4 5 6 7 8 9
           7 4 1 2 3 4 5 6 7 8 9
           Found Empty on 7 5
           7 5 1 2 3 4 5 6 7 8 9
           7 5 1 2 3 4 5 6 7 8 9
           Found Empty on 7 6
           7 6 1 2 3 4 5 6 7 8 9
           7 6 1 2 3 4 5 6 7 8 9
           Found Empty on 7 7
           7 7 1 2 3 4 5 6 7 8 9
           7 7 1 2 3 4 5 6 7 8 9
           Found Empty on 7 8
           7 8 1 2 3 4 5 6 7 8 9
           7 8 1 2 3 4 5 6 7 8 9

           7 8 1 2 3 4 5 6 7 8 9

           Found Empty on 8 1
           8 1 1 2 3 4 5 6 7 8 9
           8 1 1 2 3 4 5 6 7 8 9
           Found Empty on 8 2
           8 2 1 2 3 4 5 6 7 8 9
           8 2 1 2 3 4 5 6 7 8 9
           Found Empty on 8 4
           8 4 1 2 3 4 5 6 7 8 9
           8 4 1 2 3 4 5 6 7 8 9
           Found Empty on 8 6
           8 6 1 2 3 4 5 6 7 8 9
           8 6 1 2 3 4 5 6 7 8 9
           Found Empty on 8 7
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9

           8 7 1 2 3 4 5 6 7 8 9

           64

           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           Press any key to continue . . .

什么错了?!

1 个答案:

答案 0 :(得分:2)

执行此操作时:

sectorlist.Add(sector);

它正在添加对sector数组的引用,而不是数组的副本。因为您随后修改了该数组,它也会修改您添加到sectorlist的数组,因为它们是相同的数组。

要解决此问题,请复制数组并将副本添加到sectorlist

sectorlist.Add(sector.ToArray());

我并不是说您的代码在更改后会正常运行,但它至少会解决该特定错误。

除此之外,我建议单步执行调试器中的代码。