Nous savons que si vous avez:Convert extrait existant de code à utiliser Array.ForEach
var aa = new [] { 1, 2, 3, 4, 5 };
for (int i = 0; i < aa.length; ++i)
{
aa[i] = aa[i] + 1;
}
il est vraiment
var aa = new [] { 1, 2, 3, 4, 5 };
Arrary.ForEach(aa, a => a + 1);
Cependant, si je devais ceci:
var aa = new [] { 1, 2, 3, 4, 5 };
var ab = new [] { 1, 2, 3, 4, 5 };
for (int i = 0; i < aa.length; ++i)
{
aa[i] = ab[i] + 1;
}
Puis-je convertir ceci pour n'utiliser qu'un seul Array.ForEach? Ou, comment le feriez-vous, si vous voulez aller fou toute la programmation fonctionnelle? Clunky pour les boucles a juste l'air moche.
Je n'arrive pas à compiler votre premier code ForEach. "new Action (a => a + 1)" n'a pas de sens, puisque "a => a + 1" est une action, et "a + 1" n'est pas une instruction. –
Je suis désolé, je suis au travail maintenant, donc je ne suis pas sur le framework .Net 3.5. Je sais que l'utilisation d'un délégué fonctionnerait bien, je ne suis pas sûr si cela peut être changé pour utiliser une expression lambda à la place ... –
"Ou, comment le feriez-vous, si vous voulez aller toute la programmation fonctionnelle folle?" - Utilisez F # :) – MichaelGG