私は 9,9 の行列があり、どこに 0 があるかを確認したいのですが、もし 0 が見つかったら、0 (i と j) と 1 ~ 9 の数字の場所を保持する 11 サイズの配列を作成し、それが追加されます。リストに追加すると、次の 0 が追加されます。
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 . . .
何が悪かったのか?!
これを行うとき:
sectorlist.Add(sector);
sector
配列のコピーではなく、配列への参照を追加しています。後でその配列を変更するためsectorlist
、それらは同じ配列であるため、追加した配列も変更されます。
これを修正するには、配列のコピーを作成し、そのコピーを に追加しますsectorlist
。
sectorlist.Add(sector.ToArray());
その変更後にコードが正しく動作するとは言いませんが、少なくともその特定のバグは修正されます。
それ以外は、デバッガーでコードをシングル ステップ実行することをお勧めします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加