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);
                }
            }
        }
    }
  • 相关阅读:
    SpringBoot相知
    SpringBoot初识
    Mybatis 3 配置 Log4j
    IdeaVim-常用操作
    [ZZ] 基于Matlab的标记分水岭分割算法
    [综] meanshift算法
    [ZZ] 麻省理工( MIT)大神解说数学体系
    [ZZ] UIUC同学Jia-Bin Huang收集的计算机视觉代码合集
    公务员 素养
    [zz]有哪些优秀的科学网站和科研软件推荐给研究生?
  • 原文地址:https://www.cnblogs.com/skysimblog/p/3387867.html
Copyright © 2011-2022 走看看