Gestern habe ich einen Code geschrieben, um alle Steuerelemente in einem Formular zu entfernen, das bestimmte Kriterien erfüllt. Naiv zu schreiben, das ist es, was mir einfällt.Entfernen von Steuerelementen in einer Schleife
for (int i = 0; i < this.Controls.Count; ++i)
{
if (this.Controls[i].Name.Length == 2)
{
this.Controls.Remove(this.Controls[i);
}
}
Aber es ist so, dass der Code falsch ist. Ich ändere es dann zu:
foreach (Control ctr in this.pbBoardImage.Controls)
{
if (ctr.Length == 2)
{
this.Controls.Remove(ctr);
}
}
Aber es war immer noch nicht korrekt. Ich weiß, dass der richtige Weg wäre:
for (int i = this.Controls.Count - 1; i >= 0; i--)
{
if (this.Controls[i].Name.Length == 2)
{
this.Controls.Remove(this.Controls[i]);
}
}
jedoch noch nicht elegant fühlt. Ich konnte List.RemoveAll nicht verwenden, da this.Controls keine List war. Also kann ich nach einem eleganteren Weg fragen, vorzugsweise ohne eine Schleife zu benutzen?
Scheint wie eine gute Antwort für mich. Ich habe es aufgewertet. –
Es war nicht ich, aber es ist die richtige Antwort, also +1! –