Каждый раз, когда мне нужно делать что-то N раз в алгоритме с использованием С#, я пишу этот код
for (int i = 0; i < N; i++)
{
...
}
Изучение Ruby Я узнал о методе times(), который может использоваться с той же семантикой, что и этот
N.times do
...
end
Кодовый фрагмент в С# выглядит более сложным, и мы должны объявить бесполезную переменную i.
Я попытался написать метод расширения, который возвращает IEnumerable, но я не удовлетворен результатом, потому что снова мне нужно объявить циклическую переменную i.
public static class IntExtender
{
public static IEnumerable Times(this int times)
{
for (int i = 0; i < times; i++)
yield return true;
}
}
...
foreach (var i in 5.Times())
{
...
}
Возможно ли использование некоторых новых функций языка С# 3.0, чтобы сделать цикл N более элегантным?