Home
Browse all 647 examples
Download all 647 examples
Download sample chapters
Reviews
Errata
Acknowledgments
Links on .NET
Paradoxal Press
Buy directly from Paradoxal Press at $33.99 (Save 43%)
Category: Programming
Level: Beginner to seasoned
900 pages
ISBN-10 097661322-0
ISBN-13 978-097661322-0
$59.99 USA
$79.99 CANADA
|
Listing 14-40 extracted from chapter Unsafe code, exceptions, anonymous methods, iterators
Listing 14-39< > Listing 14-41
This listing can be compiled with the command line: csc.exe /target:exe Example_14_40.cs Errors: 0 Warnings: 0
Example_14_40.cs
public class Persons{
string[] m_Names;
public Persons( params string[] names ){
m_Names = new string[names.Length];
names.CopyTo(m_Names, 0);
}
public System.Collections.Generic.IEnumerable<string> Reverse {
get {
for (int i = m_Names.Length - 1; i >= 0; i--)
yield return m_Names[i];
}
}
public System.Collections.Generic.IEnumerable<string> PosEven {
get {
for (int i = 0; i < m_Names.Length ; i++,i++)
yield return m_Names[i];
}
}
public System.Collections.Generic.IEnumerable<string> Concat {
get {
foreach (string s in Reverse)
yield return s;
foreach (string s in PosEven)
yield return s;
}
}
}
class Program {
static void Main() {
Persons arrPersons = new Persons(
"Michel", "Christine", "Mathieu", "Julien");
System.Console.WriteLine( "-->Iterator Reverse" );
foreach ( string s in arrPersons.Reverse )
System.Console.WriteLine( s );
System.Console.WriteLine( "-->Iterator PosEven" );
foreach ( string s in arrPersons.PosEven )
System.Console.WriteLine( s );
System.Console.WriteLine( "-->Iterator Concat" );
foreach ( string s in arrPersons.Concat )
System.Console.WriteLine( s );
}
}
Copyright Patrick Smacchia 2006 2007
|