Skip to Main Content
C# Cookbook, 2nd Edition
book

C# Cookbook, 2nd Edition

by Jay Hilyard, Stephen Teilhet
January 2006
Intermediate to advanced content levelIntermediate to advanced
1184 pages
43h 23m
English
O'Reilly Media, Inc.
Content preview from C# Cookbook, 2nd Edition
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Implementing Nested foreach Functionality in a Class
|
327
Discussion
Building functionality into a class to allow it to be iterated over using the foreach
loop is much easier now that iterators are available in Version 2.0 of the C# lan-
guage. In previous versions of the .NET Framework, you not only had to implement
the
IEnumerable interface on the type that you wanted to make enumerable, but you
also had to implement the
IEnumerator interface on a nested class. The methods
MoveNext and Reset along with the property Current then had to be written by hand
in this nested class. Iterators allow you to hand the work of writing this nested class
off to the C# compiler.
The ability for a class to be used by the
foreach loop requires the inclusion of an
iterator. An iterator can be a method, an operator overload, or the
get accessor of a
property that returns either a
System.Collections.IEnumerator,aSystem.Collections.
Generic.IEnumerator<T>
,aSystem.Collections.IEnumerable,oraSystem.Collections.
Generic.IEnumerable<T>
and that contains at least one yield statement.
Here are two examples of iterator members implemented using the
GetEnumerator
method:
IEnumerator IEnumerable.GetEnumerator( )
{
for (int index = 0; index < Count; index++)
{
yield return (someArray[index]);
}
}
IEnumerator<T> IEnumerable<T>.GetEnumerator( ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C# Cookbook

C# Cookbook

Stephen Teilhet, Jay Hilyard
C# Cookbook

C# Cookbook

Joe Mayo
Head First C#, 4th Edition

Head First C#, 4th Edition

Andrew Stellman, Jennifer Greene

Publisher Resources

ISBN: 0596100639Supplemental ContentCatalog PageErrata