对于IEnumerable的一点理解

时间:2021-08-10 06:51:13

  IEnumerable和IEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单的迭代,IEnumerable和IEnumerable<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", "");
PersonEnum two = new PersonEnum("Ray", "");
Person persons = new Person();
persons.AddItem(one);
persons.AddItem(two);
foreach (PersonEnum person in persons)
{
Console.WriteLine(person.Name);
}
}
}
}