1. 程式人生 > >C#迭代器的基本應用

C#迭代器的基本應用

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    //迭代器可以返回相同型別的值的有序序列的一段程式碼,
    //可以用作方法,運算子,get訪問器的程式碼體。
    //IEnumerable公開列舉數,該列舉數支援在非泛型集合上進行簡單迭代
    //迭代器的返回型別必須為IEnumerable和IEnumerator的一種
    public class Family:System.Collections.IEnumerable//迭代器最常用的方法是對IEnumerable介面實現GetEnumerable()方法
    {
        string[] MyFamily = { "父親", "母親", "妹妹" };
        public System .Collections.IEnumerator GetEnumerator()
        {
            for (int i=0;i<MyFamily.Length; i++)
            {
                yield return MyFamily[i];//迭代器程式碼使用yield return依次返回每個元素。
                //yield return 終止迭代。
            }
        }
       
    }
   
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Family myfamily = new Family();
            foreach (string str in myfamily)
            {
                richTextBox1.Text += str + "\n";
            }
        }
    }
}