2017-02-25 41 views
0

我有一個9,9矩陣,我想檢查哪裏有0,如果我找到0我創建一個11大小的數組,其中包含0(我和j)和1-9號碼 ,並將被添加到列表中,它會找到下一個0添加和噓。c#奇怪重置所有列表項後退出循環,

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[]>(); 

後所有的i打印所有扇區(所有陣列)....

這是輸出:

  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 . . . 

什麼錯了?

+3

您是否嘗試過在調試器中單步執行代碼? –

+0

至少描述你已經探索過的所有途徑,以及爲什麼在這種誠意的努力之後你仍然難住。 – Drakestar

回答

2

當你這樣做:

sectorlist.Add(sector); 

它也加入到了sector數組的引用,而不是數組的一個副本。因爲隨後修改該數組,它也會修改您添加到sectorlist的數組,因爲它們是相同的數組。

爲了解決這個問題,使數組的副本和副本添加到sectorlist

sectorlist.Add(sector.ToArray()); 

我不是說你的代碼將是更改後正常工作,但它至少會解決這個問題特別錯誤。

除此之外,我建議單步執行調試器中的代碼。

+0

哇!偉大的thanx – user7210457