// Creation for each cell list of possible values. public static void CreatePossible(this Cell[,] matrix) { for (int yi = 0; yi < 9; yi++) { for (int xi = 0; xi < 9; xi++) { if (!matrix[xi, yi].IsKnown) { for (int num = 1; num <= 9; num++) { if (matrix.IsPossible(xi, yi, num)) { if (matrix[xi, yi].Possibles == null) { matrix[xi, yi].Possibles = new List <int>(); } matrix[xi, yi].Possibles.Add(num); } } } } } }