C#迭代器简单应用

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;

public partial class Default11 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        CityCollection2 c2 = new CityCollection2();
        foreach (string day in c2)
        {
            Response.Write(day + "<br>");
        }


        DaysOfWeek day2 = new DaysOfWeek();

        foreach (string day3 in day2)
        {
            Response.Write(day3 + "<br>");
        }

        Stact123<int> stact = new Stact123<int>();
        stact.items = new int[] { 9,1, 2, 3, 4, 5, 6, 7, 8, 11, 0 };

        foreach (int i in stact)
        {
            Response.Write(i + "<br>");
        }
    }
}

public class CityCollection2 : IEnumerable
{
    string[] m_Cities = { "New York", "Paris", "London" };

    public IEnumerator GetEnumerator()
    {

        for (int i = 0; i < m_Cities.Length; i++)

            yield return m_Cities[i]; //yield return 产生枚举元素

    }

}

public class DaysOfWeek : IEnumerable
{
    private string[] days = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday" };

    public IEnumerator GetEnumerator()
    {
        for (int i = 0; i < days.Length; i++)
        {
            yield return days[i];
        }
    }
}

public class Stact123<T> : IEnumerable<T>
{
    public T[] items;

    public IEnumerator<T> GetEnumerator()
    {
        for (int i=0; i < items.Length; i++)
        {
            if (Convert.ToInt32(items[i]) > 5)
                yield break;
            yield return items[i];
        }
    }

    IEnumerator IEnumerable.GetEnumerator()
    {

        return GetEnumerator();

    }


}

原文地址:https://www.cnblogs.com/VirtualMJ/p/638329.html