First, why do this in LINQ? The code you have does the job without it, so I'd suggest taking a look at why it is necessary to change.
If you want to you could clean you line a little:
bool isOddRow = true;
foreach (DataGridViewRow dgr in this.dataGridView1.Rows)
{
dgr.DefaultCellStyle.BackColor = isOddRow ? Color.LightGray : Color.DarkGray;
isOddRow = !isOddRow;
}
One positive change you could make is to take advantage of
AlternatingRowsDefaultCellStyle
and
RowsDefaultCellStyle
, which would probably make the above redundant totally, see MSDN for examples.