In C#, using .NET Framework 4, is there an elegant way to repeat the same action a determined number of times? For example, instead of:
int repeat = 10;
for
Like this?
using System.Linq;
Enumerable.Range(0, 10).ForEach(arg => toRepeat());
This will execute your method 10 times.
[Edit]
I am so used to having ForEach
extension method on Enumerable, that I forgot it is not part of FCL.
public static void ForEach(this IEnumerable source, Action action)
{
foreach (var item in source)
action(item);
}
Here is what you can do without ForEach
extension method:
Enumerable.Range(0, 10).ToList().ForEach(arg => toRepeat());
[Edit]
I think that the most elegant solution is to implement reusable method:
public static void RepeatAction(int repeatCount, Action action)
{
for (int i = 0; i < repeatCount; i++)
action();
}
Usage:
RepeatAction(10, () => { Console.WriteLine("Hello World."); });