• 对于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);
                }
            }
        }
    }
  • 相关阅读:
    PHP项目学习1
    常见的几种单例模式
    CGlib和JDK动态代理
    jar打包方法使用整理
    JVM内存分配原理
    JDK环境变量配置目录jre,jvm
    android学习笔记13——ExpandableListView
    android学习笔记12——ListView、ListActivity
    android学习笔记11——ScrollView
    android学习笔记十——TabHost
  • 原文地址:https://www.cnblogs.com/skysimblog/p/3387867.html
Copyright © 2020-2023  润新知