public static void Main()
    {
        //Test self Integer Iterator
        int[]            a    = new int[] { 1, -2, -3, 4, 5, -6, 7, -8, 9 };
        IntegerIterator  it   = new IntegerIterator(a);
        PositiveIterator iter = new PositiveIterator(it);

        Console.WriteLine(iter.HasNext());      //true
        Console.WriteLine(iter.HasNext());      //true
        Console.WriteLine(iter.HasNext());      //true
        Console.WriteLine(iter.Next());         //1
        Console.WriteLine(iter.Next());         //4
        Console.WriteLine(iter.Next());         //5
    }
	private int prev; //hold the previous positive number
	public PositiveIterator(IntegerIterator i){
		this.iter = i; 
		prev = -1;
	}
	public static void Main()
	{
		//Test self Integer Iterator
		int[] a = new int[]{1,-2,-3,4,5,-6,7,-8,9};
		IntegerIterator it = new IntegerIterator(a);
		PositiveIterator iter = new PositiveIterator(it);
		Console.WriteLine(iter.HasNext()); //true
		Console.WriteLine(iter.HasNext()); //true
		Console.WriteLine(iter.HasNext()); //true
		Console.WriteLine(iter.Next()); //1
		Console.WriteLine(iter.Next()); //4
		Console.WriteLine(iter.Next()); //5
		
		
	}
 private int prev;     //hold the previous positive number
 public PositiveIterator(IntegerIterator i)
 {
     this.iter = i;
     prev      = -1;
 }