public class Persons:IEnumerable
{
public Persons(string[] people)
{
this.people = people;
}
public string[] people { set; get; }
public IEnumerator GetEnumerator()
{
return new PersonEnumable(people);
}
}
public class PersonEnumable : IEnumerator
{
public PersonEnumable(string[] people)
{
this.people = people;
}
private string[] people { set; get; }
private int index { set; get; } = -1;
/// <summary>
/// 当前对象
/// </summary>
public object Current {
get {
if (index < 0 || index > people.Length-1)
return null;
else
return people[index];
}
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public bool MoveNext()
{
if (index < people.Length-1)
{
index++;
return true;
}
return false;
}
/// <summary>
///
/// </summary>
public void Reset()
{
index = -1;
}
}
var strArr = new string[] { '科比', '詹姆斯', '杜兰特', '诺维茨基', '东契奇', '卢比奥' };
var persons = new Persons(strArr);
foreach (var t in persons)
{
Console.WriteLine(t);
}
//foreachq其实大概就是执行了这段代码,只是不知道是什么时候执行的Reset()
PersonEnumable personEnumable = new PersonEnumable(strArr);
while (personEnumable.MoveNext())
{
Console.WriteLine(personEnumable.Current);
}
联系客服