C# 通过实现IEnumerable接口实现自定义的可枚举类

1 定义PersonModel类

    public class PersonModel
    {

        public String Id { get; set; }

        public String UserCode { get; set; }

        public String UserName { get; set; }

        public String Age { get; set; }

        public String Score { get; set; }

        public int price { get; set; }

    }

2 定义 IEnumerable可枚举类

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

 

posted @ 2020-08-30 14:43  温故纳新  阅读(613)  评论(0编辑  收藏  举报