111,101
社区成员




int start = 0;
while (start < arr.Length)
{
for (int i = start; i < arr.Length - 1; i++)
{
start++;
if (arr[i] > 0)
{
Console.WriteLine(arr[i]);
break;
}
}
Console.Write("是否继续(y/n)");
if (Console.ReadLine().ToLowCase() != "y") break;
}
用迭代器写:
var itor = arr.GetEnumerator();
itor.Reset();
while (itor.MoveNext())
{
if (itor.Current > 0)
{
Console.WriteLine(itor.Current);
break;
}
Console.Write("是否继续(y/n)");
if (Console.ReadLine().ToLowCase() != "y") break;
}
public interface ICollection
{
object this[int i] { get; set; }
int Count { get; }
/// /// 获取迭代器 ///
/// /// 迭代器
Iterator GetIterator();
}
/// /// 迭代器接口 ///
public interface Iterator
{
bool MoveNext();
object Current { get; }
}
public class List : ICollection
{
private const int MAX = 10;
private object[] items;
public List()
{
items = new object[MAX];
}
public object this[int i]
{
get
{
return items[i];
}
set
{
this.items[i] = value;
}
}
#region ICollection Members
public int Count
{
get
{
return items.Length;
}
}
public Iterator GetIterator()
{
return new ListIterator(this);
}
#endregion
}
public class ListIterator : Iterator
{
private int index = 0;
private ICollection list;
public ListIterator(ICollection list)
{
this.list = list;
index = 0;
}
#region Iterator Members
public bool MoveNext()
{
if (index + 1 > list.Count) return false;
else
{
index++;
return true;
}
}
public object Current
{
get
{
return list[index];
}
}
#endregion
}
class Program
{
static void Main(string[] args)
{
ICollection list = new List();
Iterator iterator = list.GetIterator();
while (iterator.MoveNext())
{
object current = iterator.Current;
}
Console.Read();
}
}