Я бы не ожидал увидеть большую разницу в производительности, и я бы, конечно, согласился с последним, поскольку он более читабелен. (Я бы поставил фигурные скобки вокруг него.)
Довольно легко представить ситуацию, когда вам может понадобиться изменить цикл, и в первом примере вы можете случайно изменить только один из них вместо обоих. Если вы действительно хотите избежать вызова свойства Checked
на каждой итерации, вы всегда можете сделать:
bool checked = this.chkSelectAll.Checked;
for (int i = 0; i < this.listBoxColumns.Items.Count; i++)
{
this.listBoxColumns.SetSelected(i, checked);
}
Как всегда, сначала напишите наиболее читаемый код и измерьте / профилируйте любые различия в производительности, прежде чем изгибать свой дизайн / код в негодности ради производительности.