我有一个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 . . .
什么错了?!
答案 0 :(得分:2)
执行此操作时:
sectorlist.Add(sector);
它正在添加对sector
数组的引用,而不是数组的副本。因为您随后修改了该数组,它也会修改您添加到sectorlist
的数组,因为它们是相同的数组。
要解决此问题,请复制数组并将副本添加到sectorlist
:
sectorlist.Add(sector.ToArray());
我并不是说您的代码在更改后会正常运行,但它至少会解决该特定错误。
除此之外,我建议单步执行调试器中的代码。