Просто для удовольствия, вот версия, которая использует LINQ и анонимные типы. Магия заключается в выражении SelectMany
, которое преобразует наш вложенный массив в IEnumerable<>
анонимного типа с координатами X и Y и значением в ячейке. Я использую форму Select
и SelectMany
, которая предоставляет индекс для облегчения получения X и Y.
статические
void Main(string[] args)
{
bool?[][] bools = new bool?[][] {
new bool?[] { true, null },
new bool?[] { false, true }
};
var nullCoordinates = bools.
SelectMany((row, y) =>
row.Select((cellVal, x) => new { X = x, Y = y, Val = cellVal })).
Where(cell => cell.Val == null);
foreach(var coord in nullCoordinates)
Console.WriteLine("Index of null value: ({0}, {1})", coord.X, coord.Y);
Console.ReadKey(false);
}