【发布时间】:2017-05-06 13:05:49
【问题描述】:
static void Main()
{
DaysOfTheWeek days = new DaysOfTheWeek();
foreach (string day in days)
{
Console.Write(day + " ");
}
// Output: Sun Mon Tue Wed Thu Fri Sat
Console.ReadKey();
}
public class DaysOfTheWeek : IEnumerable
{
private string[] days = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
public IEnumerator GetEnumerator()
{
for (int index = 0; index < days.Length; index++)
{
// Yield each day of the week.
yield return days[index];
}
}
}
在 foreach 循环中发生了什么。它是否调用 GetEnumerator 函数,每次迭代或 foreach 都被 GetEnumerator 函数替换?在这种情况下复杂度会达到 O(n2) 吗?
【问题讨论】:
-
我不明白这如何回答@Janne 的问题
标签: c# .net ienumerable