January 2004
Beginner to intermediate
864 pages
22h 18m
English
You need a class that contains an array
of objects; each of these objects in turn contains an array of
objects. You want to use a nested foreach loop to
iterate through all objects in both the outer and inner arrays in the
following manner:
foreach (SubSet aSubSet in Set)
{
foreach (Item i in aSubSet)
{
// Operate on Item objects contained in the innermost object collection
// SomeSubSet, which in turn is contained in another outer collection
// called Set
}
}
Implement
IEnumerable on the top-level class as usual, but
also implement IEnumerable on each of the objects
returned by the top-level enumeration. The following class set
contains an ArrayList of
SubGroup objects, and each
SubGroup object contains an
ArrayList of Item objects:
using System; using System.Collections; //----------------------------------------- // // The top-level class // //----------------------------------------- public class Set : IEnumerable { //CONSTRUCTORS public Set( ) {} //FIELDS private ArrayList setArray = new ArrayList( ); //PROPERTIES public int Count { get{return(setArray.Count);} } //METHODS public IEnumerator GetEnumerator( ) { return(new SetEnumerator(this)); } public int AddGroup(string name) { return(setArray.Add(new SubGroup(name))); } public SubGroup GetGroup(int setIndex) { return((SubGroup)setArray[setIndex]); } //NESTED ITEMS public class SetEnumerator : IEnumerator { //CONSTRUCTORS public SetEnumerator(Set theSet) ...