Changement foreach pour lambda
J'ai besoin d'une aide à la simpify cette déclaration. Comment faire pour modifier une boucle foreach pour lambda
var r = mp.Call(c => c.GetDataset()); //returns IEnumerable of dataset
foreach (DatasetUserAppsUsage item in r)
{
datasetUserAppsUsage.Merge(item.AppsUsageSummary);
}
pouvez vous s'il vous plaît emballer votre code dans un bloc de code? Le symbole ressemble à
{ }
OriginalL'auteur userbb | 2011-03-18
Vous devez vous connecter pour publier un commentaire.
lambdas et les boucles sont orthogonaux. Il est inapproprié d'essayer de les changer par la force brute de l'un dans l'autre. Ce code est très bien. La quitter.
Vous peut obtenir
.ForEach
implémentations, mais il ne va pas rendre le code mieux (en fait, il sera plus difficile à suivre, c'est à dire pire), et il ne sera pas plus efficace (en fait, il sera un peu plus lent, c'est à dire pire).List<T>.ForEach
me rappelle toujours de l'article suivant: diditwith.net/2006/10/05/PerformanceOfForeachVsListForEach.aspxArticle très intéressant. J'ai été surpris.
oui, mais en l'appelant .ToList() tout d'abord, juste pour pouvoir utiliser ForEach() claque un peu 🙂
certainement oui, c'est un problème :). N'était pas en train d'insinuer cela a été une meilleure solution pour ce scénario particulier. Juste que les débats de ce genre, toujours me rappeler de cet article, car les conclusions qu'elle tire ont été très contre-intuitif pour moi. Un sens un peu plus, mais quand vous considérez les détails de mise en œuvre un peu.
OriginalL'auteur Marc Gravell
Vous pouvez effectuer les opérations suivantes
OriginalL'auteur JaredPar
Personnellement, je ne pense pas que je voudrais les fusionner en un seul lambda. Vous pourriez faire:
Cependant, je voudrais l'éviter, comme c'est délibérément causer des effets secondaires, qui viole les attentes de LINQ, et n'est pas très clair dans ses intentions.
OriginalL'auteur Reed Copsey
Je suis d'accord que les lambdas but différent, mais parfois, j'utilise cette astuce:
L'astuce est d'utiliser Tous() et retour vrai pour éviter la rupture.
Et ne changez pas la collection sous-jacente à l'intérieur d'énumérateur de cours 🙂
OriginalL'auteur Thom Smith