Итератор — это способ возвращать следующий элемент из совокупности элементов, которые не обязательно должны быть массивом или коллекцией.
Ключевое слово yield используется в блоке итератора.
Для предоставления значения объекта — yield return объект;
Для преждевременного прерывания итератора — yield break;
Синтаксис:
public IEnumerable имя_итератора(список_параметров) {
//код
yield return obj;
}
Ключевое слово yield используется в блоке итератора.
Для предоставления значения объекта — yield return объект;
Для преждевременного прерывания итератора — yield break;
Синтаксис:
public IEnumerable имя_итератора(список_параметров) {
//код
yield return obj;
}
Main.cs
usingSystem;//подключить пространство именusingSystem.Collections;classOne {-
publicIEnumerable Iter(paramsint[] arg) { -
foreach(var iinarg) { -
yieldreturni; -
} -
} }classProgram {-
publicstaticintMain() { -
inta = 10, b = 20, c = 30, d = 40, e = 50; -
intsum = 0; -
One O =newOne(); -
foreach(var iinO.Iter(a, b, c, d, e)) { -
sum+=(int)i; -
Console.Write("{0} ", i); -
} -
Console.WriteLine(); -
Console.WriteLine("сумма : {0}", sum); -
Console.ReadKey(); -
return0; -
} }
usingSystem;//подключить пространство именusingSystem.Collections;classOne {-
publicIEnumerable Iter(paramsint[] arg) { -
foreach(var iinarg) { -
yieldreturni; -
} -
} }classProgram {-
publicstaticintMain() { -
inta = 10, b = 20, c = 30, d = 40, e = 50; -
intsum = 0; -
One O =newOne(); -
foreach(var iinO.Iter(a, b, c, d, e)) { -
sum+=(int)i; -
Console.Write("{0} ", i); -
} -
Console.WriteLine(); -
Console.WriteLine("сумма : {0}", sum); -
Console.ReadKey(); -
return0; -
} }
10 20 30 40 50
сумма : 150
сумма : 150