Vous pouvez rouler votre propre en utilisant la yield keyword. Voici quelque chose qui vous donnera des fonctionnalités similaires. Vous devrez inclure cet espace de noms pour utiliser l'interface IEnumerable:
using System.Collections;
Voici un exemple:
public static void Main()
{
string[] myColors = { "red", "green", "blue" };
// this would be your external loop, such as the one building up the table in the RoR example
for (int index = 0; index < 3; index++)
{
foreach (string color in Cycle(myColors))
{
Console.WriteLine("Current color: {0}", color);
}
}
}
public static IEnumerable Cycle<T>(T[] items)
{
foreach (T item in items)
{
yield return item;
}
}
La méthode Cycle utilise generics dans l'échantillon de code ci-dessus pour permettre l'utilisation d'autres les types. Par exemple, lorsque mycolors est déclarée, vous pouvez utiliser:
int[] myInts = { 0, 1, 2, 3 };
bool[] myBools = { true, false };
Et dans la boucle que vous pourriez avoir:
foreach (int i in Cycle(myInts))
{
Console.WriteLine("Current int: {0}", i);
}
foreach (bool b in Cycle(myBools))
{
Console.WriteLine("Current bool: {0}", b);
}
Superbe. Merci beaucoup, monsieur. – eusden