Итератор — это способ возвращать следующий элемент из совокупности элементов, которые не обязательно должны быть массивом или коллекцией.
Ключевое слово yield используется в блоке итератора.
Для предоставления значения объекта — yield return объект;
Для преждевременного прерывания итератора — yield break;
Синтаксис:
public IEnumerable имя_итератора(список_параметров) {
//код
yield return obj;
}
Ключевое слово 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;
-
}
}
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
сумма : 150