|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace CircularEnumDemo
{
class Program
{
const int max = 15; // Max number of iterations to stop circular enumerator
static void Main(string[] args)
{
SortedList<int, string> list = new SortedList<int,string>();
list.Add(1, "one");
list.Add(2, "two");
list.Add(3, "three");
list.Add(4, "four");
list.Add(5, "five");
list.Add(6, "six");
list.Add(7, "seven");
list.Add(8, "eight");
list.Add(9, "nine");
list.Add(10, "ten");
Console.WriteLine("Dictionary circular enumeration:");
int i = 0;
foreach (KeyValuePair<int, string> pair in Enumerators.CircularEnum(list))
{
Console.WriteLine(" " + pair.ToString());
if (++i >= max)
break; // stop circular enumerator, will be infinite if not
}
Console.WriteLine(" (stopped)\r\n");
Console.WriteLine("Dictionary values circular enumeration:");
i = 0;
foreach (string value in Enumerators.CircularEnum(list.Values))
{
Console.WriteLine(" " + value.ToString());
if (++i >= max)
break; // stop circular enumerator, will be infinite if not
}
Console.WriteLine(" (stopped)\r\n");
Console.WriteLine("Reverse enumeration:");
foreach (string value in Enumerators.ReverseEnum(list.Values))
{
Console.WriteLine(" " + value.ToString());
}
Console.WriteLine(" (finished)\r\n");
Console.WriteLine("Constrained enumeration (2,5):");
foreach (KeyValuePair<int, string> pair in Enumerators.ConstrainedEnum(list, 2, 5))
{
Console.WriteLine(" " + pair.ToString());
}
Console.WriteLine(" (finished)\r\n");
Console.WriteLine("Stepped enumeration (3):");
foreach (int value in Enumerators.SteppedEnum(list.Keys, 3))
{
Console.WriteLine(" " + value.ToString());
}
Console.WriteLine(" (finished)\r\n");
Console.WriteLine("Combined Constrained(2,6)-Stepped(3)-Reverse-Circular enumeration:");
i = 0;
foreach (int value in Enumerators.ConstrainedEnum(Enumerators.SteppedEnum(Enumerators.CircularEnum(Enumerators.ReverseEnum(list.Keys)), 3), 2, 6))
{
Console.WriteLine(" " + value.ToString());
if (++i >= max * 2)
break; // stop circular enumerator, will be infinite if not
}
Console.WriteLine(" (finished)");
Console.ReadKey();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.