public class PersonEnumerator : IEnumerable<PersonModel>
public List<PersonModel> people { get; set; }
// 实现 IEnumerable<T>的 IEnumerator<T> GetEnumerator()方法
IEnumerator<PersonModel> IEnumerable<PersonModel>.GetEnumerator()
return ((IEnumerable<PersonModel>)people).GetEnumerator();
// 由于IEnumerable<out T> : IEnumerable,所以还需要实现 IEnumerable的 IEnumerator GetEnumerator();
IEnumerator IEnumerable.GetEnumerator()
return people.GetEnumerator();
3 测试使用自定义的可枚举类
static void Main(string[] args)
PersonEnumerator personEnumerator = new PersonEnumerator { people = new List<PersonModel> { new PersonModel { price = 10 }, new PersonModel { price = 25 } } };
foreach(var t in personEnumerator)
Console.WriteLine(t.price);
Console.ReadKey();
4 测试结果