zoukankan      html  css  js  c++  java
  • 对于IEnumerable的一点理解

      IEnumerableIEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单的迭代,IEnumerableIEnumerable<T>接口是.NET Framework中最基本的集合访问器,这两个接口对于LINQ的理解是非常重要的。

      在网上看了些这方面的东西,在此对自己看到的一些这方面知识进行下总结。废话不多说,直接上代码。

    namespace IEnumeratorSample
    {
        using System;
        using System.Collections;
        using System.Collections.Generic;
    
        internal class Person : IEnumerable<PersonEnum>
        {
            private ICollection<PersonEnum> PersonList { get; set; }
    
            public Person()
            {
                this.PersonList = new List<PersonEnum>();
            }
    
            public IEnumerator GetEnumerator()//实现接口
            {
                return this.PersonList.GetEnumerator();
            }
    
            public void AddItem(PersonEnum entity)
            {
                if (PersonList == null)
                {
                    PersonList = new List<PersonEnum>();
                }
                PersonList.Add(entity);
            }
    
            public bool Remove(PersonEnum entity)
            {
                return PersonList.Remove(entity);
            }
    
            IEnumerator<PersonEnum> IEnumerable<PersonEnum>.GetEnumerator()
            {
                return this.PersonList.GetEnumerator();
            }
        }
    
        internal class PersonEnum
        {
            public string Name;
    
            public string Age;
    
            public PersonEnum(string name, string age)
            {
                Name = name;
    
                Age = age;
            }
        }
    
        internal class Program
        {
            private static void Main(string[] args)
            {
                PersonEnum one = new PersonEnum("leo", "23");
                PersonEnum two = new PersonEnum("Ray", "25");
                Person persons = new Person();
                persons.AddItem(one);
                persons.AddItem(two);
                foreach (PersonEnum person in persons)
                {
                    Console.WriteLine(person.Name);
                }
            }
        }
    }
  • 相关阅读:
    13 内建属性 _getattribute_ 内建函数
    12 垃圾回收GC
    11 元类
    12 动态语言 __slots__
    11 作用域
    10 带参数的装饰器 通用装饰器 类装饰器
    9 装饰器
    8 闭包
    6 生成器 yield 协程
    cmd常用命令
  • 原文地址:https://www.cnblogs.com/skysimblog/p/3387867.html
Copyright © 2011-2022 走看看