Je sais que les expressions lambda dans les boucles peuvent causer des problèmes si elles utilisent des variables locales. (Voir http://www.jaylee.org/post/2008/11/18/Lambda-Expression-and-ForEach-loops.aspx)Expression C# lambda dans la requête LINQ
Maintenant, j'ai une situation où je me sers d'une expression lambda dans une requête LINQ:
var products = from product in allProducts
select new
{
ID = product.ID,
Name = product.Name,
Content = new Func<object,string>(
(obj) => (GetSomeDynamicContent(obj, product))
)
};
someCustomWebControl.DataSource = products;
someCustomWebControl.DataBind();
Est-ce sans danger? Est-ce que le compilateur étendra toujours correctement cette expression et s'assurera que "product" pointe vers l'objet correct?