迭代器,是一个连续的集合,出现多个yield return其实就是将这多个的yield return元素按照出现的顺序存储在迭代器的集合中而已。形如下面的形式:
public class CityCollection : IEnumerable<string> { string[] _Items = new string[] { "黑龙江", "吉林", "辽宁", "山东", "山西", "陕西", "河北", "河南", "湖南", "湖北", "四川", "广西", "云南", "其他" }; IEnumerator<string> IEnumerable<string>.GetEnumerator() { for (int i = 0; i < _Items.Length; i++) { yield return _Items[i]; yield return string.Format("Index:{0}", i); } } IEnumerator IEnumerable.GetEnumerator() { for (int i = 0; i < _Items.Length; i++) { yield return _Items[i]; } } }
每一条yield return都是迭代器中的一个元素。