📅  最后修改于: 2020-11-01 03:01:05             🧑  作者: Mango
C#迭代器是一种方法。它用于迭代集合,数组或列表的元素。迭代器使用yield return语句一次返回每个元素。
迭代器记住当前位置,并在下一次迭代中返回下一个元素。
迭代器的返回类型可以是IEnumerable
要停止迭代,我们可以使用yield break语句。
在此示例中,我们迭代数组元素。
using System;
using System.Collections.Generic;
using System.Linq;
namespace CSharpFeatures
{
class IteratorExample
{
public static IEnumerable GetArray()
{
int[] arr = new int[] { 5,8,6,9,1 };
// Iterating array elements and returning
foreach (var element in arr)
{
yield return element.ToString(); // It returns elements after executing each iteration
}
}
public static void Main(string[] args)
{
// Storing elements, returned from the iterator method GetArray()
IEnumerable elements = GetArray();
foreach (var element in elements) // Iterating returned elements
{
Console.WriteLine(element);
}
}
}
}
输出:
5
8
6
9
1
迭代器也可以用于迭代集合元素。在下面的示例中,我们正在迭代列表元素。
using System;
using System.Collections.Generic;
using System.Linq;
namespace CSharpFeatures
{
class IteratorExample
{
public static IEnumerable GetList()
{
// List of string elements
List list = new List();
list.Add("Rohan"); // Adding elements
list.Add("Peter");
list.Add("Irfan");
list.Add("Sohan");
// Iterating and returing list elements
foreach (var element in list)
{
yield return element; // It returns elements after executing each iteration
}
}
public static void Main(string[] args)
{
// Storing elements, returned from the iterator method GetList()
IEnumerable elements = GetList();
foreach (var element in elements) // Iterating returned elements
{
Console.WriteLine(element);
}
}
}
}
输出:
Rohan
Peter
Irfan
Sohan