итератор / yield

Итератор — это способ возвращать следующий элемент из совокупности элементов, которые не обязательно должны быть массивом или коллекцией.
Ключевое слово yield используется в блоке итератора.
Для предоставления значения объекта — yield return объект;
Для преждевременного прерывания итератора — yield break;

Синтаксис:
public IEnumerable имя_итератора(список_параметров) {
 //код
 yield return obj;
}
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  public IEnumerable Iter(params int[] arg) {
  •   foreach(var i in arg) {
  •    yield return i;
  •   }
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   int a = 10, b = 20, c = 30, d = 40, e = 50;
  •   int sum = 0;
  •   One O = new One();
  •   foreach(var i in O.Iter(a, b, c, d, e)) {
  •    sum+=(int)i;
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   Console.WriteLine("сумма : {0}", sum);
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
10 20 30 40 50
сумма : 150