码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-09-10 23:09:46      阅读:50      评论:0      收藏:0      [点我收藏+]

标签:one   list   lazy   ret   style   each   nbsp   console   string   

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

技术图片

 

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

标签:one   list   lazy   ret   style   each   nbsp   console   string   

原文地址:https://www.cnblogs.com/tomorrow0/p/13585248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!