ToList().ForEach dans Linq

Je suis Linq.

Je veux mettre deux valeurs dans l'instruction foreach comme ce

Mon code est ce

foreach (Employee emp in employees)
{
    foreach(Department dept in emp.Departments)
    {
        dept.SomeProperty = null;
    }
    collection.AddRange(emp.Departments);              
}

Peu de refactoring tourne le ci-dessus dans cette

foreach (Employee emp in employees)
{
    emp.Departments.ToList().ForEach(u => u.SomeProperty = null))
    collection.AddRange(emp.Departments);              
}

Mais je veux quelque chose comme ce

employees.ToList().Foreach(collection.AddRange(emp.Departments),
emp.Departments.ToList().ForEach(u => u.SomeProperty = null))
  • NON! Ne pas convertir votre collection de la liste vient d'appeler cette méthode... Utiliser vos boucles.
  • Réfléchir sur la performance, tandis que l'évolution de Linq. Pas toujours LINQ est utile par rapport à la normale des boucles.
  • Le faire et personne ne peut lire votre code à nouveau. L'autonomie de l'obscurcissement.
  • Le code d'origine est parfaitement clair et compréhensible; je ne vois pas le besoin de le changer. Rappelez-vous, le code n'est pas seulement pour communiquer au compilateur de communiquer au futur lecteur de code; la rendre aussi claire que possible.
  • Merci Eric. Si je n'avais pas été habitué à la LECTURE de tous les commentaires maintenant j'aurais manqué cette importante recommandation.
InformationsquelleAutor manav inder | 2011-10-19