LINQ 以前の問題だなぁ。

百歩譲ってその処理が必要だとして、
非 LINQ で回すにしても、それは条件を一度メソッド化して、

foreach (var ctr in this.Controls)
 if (cond(ctr))
  listBox1.Items.Add(ctr.Name);

とすべきだと思うし、これの LINQ 化は、

foreach (var item in this.Controls.Where(x => cond(x)).Select(x => x.Name))
 listBox1.Items.Adde(item);