An Interesting Use of a C# Foreach Loop

Posted on Tuesday, November 4, 2008

I've seen many different ways of clearing the contents of controls in a Windows Form object, some of which can be quite elaborate. While it can be fun to come up with these convoluted schemes, there is an easier way. Here's what I do...

I implement a foreach loop, and iterate over the form's collection of Controls, comparing each control to the TextBox control type, using the is keyword. This keyword, is, performs a type comparison. If the Control is the type I am comparing it to, then I perform a function call, in this case a call to the Control's ResetText() method.

The beauty of this chunk of code is that it scales with the form itself. If the form has 3 controls or 300, the same code can be applied without modification.

Pretty sweet, huh? Here's the code (written for C#):

foreach(Control ctrl in this.Controls)
{
    if( ctrl is TextBox )
    {
        ctrl.ResetText();
    }
}

Enjoy!