Hôm qua tôi đã viết một đoạn mã để xóa tất cả các điều khiển trong một biểu mẫu đáp ứng các tiêu chí nhất định. Viết nó ngây thơ, đây là những gì tôi nghĩ ra.Xóa điều khiển trong vòng lặp
for (int i = 0; i < this.Controls.Count; ++i)
{
if (this.Controls[i].Name.Length == 2)
{
this.Controls.Remove(this.Controls[i);
}
}
Nhưng điều đó xảy ra là mã sai. Sau đó, tôi đổi thành:
foreach (Control ctr in this.pbBoardImage.Controls)
{
if (ctr.Length == 2)
{
this.Controls.Remove(ctr);
}
}
Nhưng vẫn không đúng. Tôi biết rằng cách chính xác sẽ là:
for (int i = this.Controls.Count - 1; i >= 0; i--)
{
if (this.Controls[i].Name.Length == 2)
{
this.Controls.Remove(this.Controls[i]);
}
}
Tuy nhiên nó vẫn không cảm thấy thanh lịch. Tôi không thể sử dụng List.RemoveAll, vì this.Controls không phải là một List. Vì vậy, tôi có thể yêu cầu một cách thanh lịch hơn, tốt hơn là không sử dụng một vòng lặp?
Có vẻ như một câu trả lời tốt với tôi. Tôi upvoted nó. –
Đó không phải là tôi, nhưng đó là câu trả lời đúng, vì vậy +1! –