Vous pouvez facilement écrire votre propre méthode d'extension :
public static void Times(this int count, Action action)
{
for (int i = 0; i < count; i++)
{
action();
}
}
Ensuite, vous pourrez écrire :
10.Times(() => list.Add(GetRandomItem()));
Je ne suis pas sûr que je suggérerais en fait que vous do mais c'est une option. Je ne crois pas qu'il y ait quelque chose comme ça dans le cadre, bien que vous puissiez utiliser Enumerable.Range
ou Enumerable.Repeat
pour créer une séquence paresseuse d'une longueur appropriée, ce qui peut être utile dans certaines situations.
Depuis C# 6, il est toujours possible d'accéder à une méthode statique sans créer de méthode d'extension, en utilisant une méthode de type using static
pour l'importer. Par exemple :
// Normally in a namespace, of course.
public class LoopUtilities
{
public static void Repeat(int count, Action action)
{
for (int i = 0; i < count; i++)
{
action();
}
}
}
Puis, quand vous voulez l'utiliser :
using static LoopUtilities;
// Class declaration etc, then:
Repeat(5, () => Console.WriteLine("Hello."));