You are passing an invalid index to `GetLength`

. The dimensions of a multidimensional array are `0`

based, so `-1`

is invalid and using a negative number (or a number that is larger than the number of dimensions – 1) would cause an `IndexOutOfRangeException`

.

This will loop over the *first* dimension:

```
for (int k = 0; k < odds.GetLength(0); k++)
```

You need to add another loop to go through the second dimension:

```
for (int k = 0; k < odds.GetLength(0); k++)
for (int l = 0; l < odds.GetLength(1); l++)
var val = odds[k, l];
```