您的位置:首页 > 编程语言 > C#

C#_IEnumerable和IEnumerable<T>

2015-12-22 22:58 471 查看
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace CShapeTest
{
// 实现非泛型IEnumerable可枚举接口
class Teacher:IEnumerable
{
private List<Student> stuList;

public Teacher()
{
stuList = new List<Student>();
}

public void add(Student stu)
{
this.stuList.Add(stu);
}

public IEnumerator GetEnumerator()
{
return this.stuList.GetEnumerator();
}
}

class Student
{
private int age;
private string name;

public Student(int age, string name)
{
this.age = age;
this.name = name;
}

public override string ToString()
{
return string.Format("age:{0}, name:{1}", this.age, this.name);
}
}

class Start
{
static void Main(string[] args)
{
Teacher tea = new Teacher();
tea.add(new Student(20, "cxm"));
tea.add(new Student(23, "zqr"));
tea.add(new Student(25, "chenglong"));
tea.add(new Student(27, "xiaoming"));
tea.add(new Student(30, "lisi"));

foreach (var item in tea)
{
Console.WriteLine(item);
}

Console.ReadLine();
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace CShapeTest
{
// 实现泛型IEnumerable<T>可枚举接口
class Teacher:IEnumerable<Student>
{
private List<Student> stuList;

public Teacher()
{
stuList = new List<Student>();
}

public void add(Student stu)
{
this.stuList.Add(stu);
}

//可枚举的类可以返回枚举
public IEnumerator<Student> GetEnumerator()
{
foreach (Student s in stuList)
{
yield return s;
}
}

//显式实现接口
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}

class Student
{
private int age;
private string name;

public Student(int age, string name)
{
this.age = age;
this.name = name;
}

public override string ToString()
{
return string.Format("age:{0}, name:{1}", this.age, this.name);
}
}

class Start
{
static void Main(string[] args)
{
Teacher tea = new Teacher();
tea.add(new Student(20, "cxm"));
tea.add(new Student(23, "zqr"));
tea.add(new Student(25, "chenglong"));
tea.add(new Student(27, "xiaoming"));
tea.add(new Student(30, "lisi"));

foreach (var item in tea)
{
Console.WriteLine(item);
}

Console.ReadLine();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息