Je suis très jeune avec les expressions lambda en C#, et j'ai du mal à conceptualiser comment elles sont stockées/récupérées dans une collection.Récupérer des expressions lambda d'une collection
J'essaye de créer par programme une liste de 10 Funcs x => x + 1, x => x + 2, etc. comme test. Ma sortie désirée est 0,1,2,3,4,5,6,7,8,9
Voici mon code pour que:
var list = new List<Func<int, int>>();
for (int i = 0; i < 10; i++)
{
Func<int, int> func = x => x + i;
Console.WriteLine("a) " + func.Invoke(0)); //returns 0,1,2,3,4,5,6,7,8,9
list.Add(func);
Console.WriteLine("b) " + list[i].Invoke(0)); //returns 0,1,2,3,4,5,6,7,8,9
}
foreach (var func in list) //returns 10,10,10,10,10,10,10,10,10,10
Console.WriteLine("c) " + func.Invoke(0));
for(int i = 0; i < list.Count; i++) //returns 10,10,10,10,10,10,10,10,10,10
Console.WriteLine("d) " + list[i].Invoke(0));
Je reçois les mêmes résultats en substituant un tableau Func pour la liste [Func].
Qu'est-ce qui me manque?
Aha! Merci Monsieur. – bufferz