Understanding Collections


A collection is just what its name implies: a collection of objects. Collections make it easy to work with large numbers of similar objects by enabling you to create code that performs iterative processing on items within the collection. Iterative processing is an operation that uses a loop to perform actions on multiple objects, rather than writing the operative code for each object. In addition to containing an indexed set of objects, collections also have properties and might have methods. Figure 3.8 illustrates the structure of a collection.

Figure 3.8. Collections contain sets of like objects, and they have their own properties and methods.


Continuing with the Dog/Pet object metaphor, think about what an Animals collection might look like. The Animals collection might contain one or more Pet objects, or it might be empty (contain no objects). All collections have a Count property that returns the total count of objects contained within the collection. Collections might also have methods, such as a Delete() method used to remove objects from the collection and an Add() method used to add a new object to the collection.

To better understand collections, you're going to create a small Visual C# project that cycles through the Controls collection of a form and tells you the value of the Name property of every control on the form. To create your sample project, follow these steps:

1.

Start Visual C# now (if it's not already loaded) and create a new Windows Application project titled Collections Example.

2.

Rename the form from Form1.vs to frmCollectionsExample.cs using the Solution Explorer. If prompted to update all code references to use the new name, select Yes. Next, set the form's Text property to Collections Example (you will need to click the form once to display its properties).

3.

Add a new button to the form by double-clicking the Button tool in the tool-box. Set the button's properties as follows:

Property

Value

Name

btnShowNames

Location

88,112

Size

120,23

Text

Show Control Names


4.

Next, add some text box and button controls to the form. As you add the controls to the form, be sure to give each control a unique name. Feel free to use any name you want, but you can't use spaces in a control name. You might want to drag the controls to different locations on the form so that they don't overlap.

5.

When you're finished adding controls to your form, double-click the Show Control Names button to add code to its Click event. Enter the following code:

for (int intIndex = 0; intIndex < this.Controls.Count; intIndex++)    {       MessageBox.Show("Control #" + intIndex.ToString() +             " has the name " + this.Controls[intIndex].Name);    }


By the Way

Every form has a Controls collection, which might not contain any controls. Even if no controls are on the form, the form still has a Controls collection.


The first statement (the one that begins with for) accomplishes a few tasks. First, it initializes the variable intIndex to 0, and then tests the variable. It also starts a loop executing the statement block (loops are discussed in Hour 14, "Looping for Efficiency"), incrementing intIndex by one until intIndex equals the number of controls on the form, less one. The reason that intIndex must always be less than the Count property is that when referencing items in a collection, the first item is always item zerocollections are zero-based. Thus, the first item is in location zero, the second item is in location one, and so forth. If you tried to reference an item of a collection in the location of the value of the Count property, an error would occur because you would be referencing an index that is one higher than the actual locations within the collection.

The MessageBox.Show() method (discussed in detail in Hour 17, "Interacting with Users") is a class available in the .NET Framework that is used to display a simple dialog box with text. The text that you are providing, which the MessageBox.Show() method will display, is a concatenation of multiple strings of text. (Concatenation is the process of adding strings together; it is discussed in Hour 12, "Performing Arithmetic, String Manipulation, and Date/Time Adjustments.")

Run the project by pressing F5 or by clicking Start on the toolbar. Ignore the additional controls that you placed on the form and click the Show Control Names button. Your program then displays a message box similar to the one shown in Figure 3.9 for each control on your form (because of the loop). When the program is finished displaying the names of the controls, choose Stop Debugging from the Debug menu to stop the program and then save the project.

Figure 3.9. The Controls collection enables you to get to each and every control on a form.


Because everything in Visual C# 2005 is an object, you can expect to use numerous collections as you create your programs. Collections are powerful, and the quicker you become comfortable using them, the more productive you'll be.




Sams Teach Yourself Microsoft Visual C# 2005 in 24 Hours, Complete Starter Kit
Sams Teach Yourself Visual C# 2005 in 24 Hours, Complete Starter Kit
ISBN: 0672327406
EAN: 2147483647
Year: N/A
Pages: 248
Authors: James Foxall

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net