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 测试结果