Savoir si une collection est vide de façon optimale

Savoir si une collection est vide de façon optimale

Les collections .Net ne disposent pas de la fonction IsEmpty, elle
peut toutefois être remplacé par l’appel a d’autres méthodes. Nous allons voir
dans cet article quelles sont les méthodes les plus efficaces selon le
type de la collection.

On va donc différencier deux types de collection, le type parcourable,
où on peut accéder a n’importe quel éléments et le type énumerable, où l’on parcourt les éléments les un à la suite des autres.

Les collections parcourables

On compte parmis elle : les List, Dictionary, Hashtable, etc…

Toutes ses collections garde en local le nombre d’éléments, donc si on
le demande, cela ne nous coutera rien. Elle dispose d’un propriété
Count (et non d’une méthode, attention à la différence ).

On utilisera l’instruction suivante pour savoir si une liste est vide :

var isEmpty=(maliste.Count==0);

Les collections énumerable.

Si on demande a une énumération de compter son nombre d’éléments, elle
va parcourir l’ensemble de ses enfants afin de vous répondre, sur une
grosse collection, ceci a un coût.

On va donc utiliser une autre méthode : Any(), cette fonction nous
retourne un booléen indiquant s’il existe au moins un élément. Dans
les faits, elle va uniquement regarder le pointeur vers le premier
enfant et vous retourner s’il est différent de nul. Ainsi, on
s’économise le parcours entier de la collection.

var isEmpty=!monEnum.Any();

Conclusion :

S’il existe une propriété Count, l’utiliser, sinon utiliser Any(),
mais ne jamais utiliser la méthode Count() dans d’autres usages que de
connaitre le nombre d’éléments

Comments are closed.