C# как метод расширения take() работает с итераторами?
Привет. Я читал о том, как работают итераторы (доходность возвращается), и наткнулся на этот код
Это метод с доходностью доходности:
IEnumerable<int> GenerateWithYield() { var i = 0; while (true) yield return ++i; }
а это цикл foreach:
foreach(var number in GenerateWithYield().Take(5)) Console.WriteLine(number);
Как же так .Взять() работу? Что он делает?
Я проверил MSDN и увидел в замечании, что этот метод Take использует отложенное выполнение. Отложенное выполнение запросов LINQ. так ведь? Я пытаюсь изучить LINQ, но сначала мне нужно понять результаты.
Что я уже пробовал:
Я проверил MSDN и увидел, что он использует отложенное выполнение. Но я еще не научился работать с LINQ, но для того, чтобы начать работать с ним, мне нужно сначала понять, как работают выходы.
#realJSOP
Этот тип обсуждения не подходит для раздела вопросов и ответов. Отнесите его на соответствующий форум.