Tout en travaillant avec des extensions Linq, il est normal de voir le code comme ceci:
IEnumerable<int> enumerable = GetEnumerable();
int sum = 0;
if (enumerable != null)
{
sum = enumerable.Sum();
}
Afin d'améliorer la qualité du code, j'ai écrit la suite de l'extension de la méthode qui vérifie nullable enumerables et rompt le linq exécution.
public static IEnumerable<T> IgnoreIfEmpty<T>(this IEnumerable<T> enumerable)
{
if (enumerable == null) yield break;
foreach (var item in enumerable)
{
yield return item;
}
}
Donc, je peux refactoriser le code comme ceci:
var sum = GetEnumerable().IgnoreIfEmpty().Sum();
Mes questions maintenant:
- Quelles sont les sanctions associées avec mon extension de la méthode au moment de l'exécution?
- Est-ce une bonne pratique pour étendre linq de cette façon?
Mise à jour: Mon framework cible est: 3.5