« Les opérateurs de requête Linq de Aggregate à Where » est en quelque sorte un défi que je me lance où l’objectif est d’écrire un billet sur chaque opérateur (standard) de Linq qu’il existe dans le Framework .NET 3.5 afin de vous montrer comment on faisait avant et comment on peut faire la même chose à présent avec les opérateurs Linq. Je viens encore de jeter un oeil sur la liste des opérateurs référencés sur MSDN et il y en a environ 50 *aie*. La tâche risque d’être longue mais je vais essayer de m’y tenir et puis si c’est pas le cas, j’espère bien que certains d’entre vous seront là pour me remotiver.

Après ce petit discours d’introduction, passons aux choses sérieuses avec l’opérateur Any. C’est un choix d’avoir voulu commencer par celui-là, car à mon sens, il incarne très bien la facilité que sont supposés apporter les opérateurs de Linq.

On va prendre un exemple tout simple et dîtes-moi comment vous faites pour tester qu’une collection a au minimum un élément ?

Comme ceci ?

var membres = GetMembresDeveloppez();
if (membres.Count > 0)
{ 
        // …
}

Depuis le Framework .NET 3.5, je fais comme ceci :

var membres = GetMembresDeveloppez();
if (membres.Any())
{ 
        // …
}

La différence, c’est qu’en utilisant la propriété Count, chaque élément de la collection est parcouru afin de déterminer le nombre d’élément existants. Pourtant, dans notre cas, on désire juste savoir s’il y a au moins un élément dans notre collection. C’est à cette question que l’opérateur Any répond. Il va parcourir notre collection et soit il ne trouvera aucun élément et renverra directement False, soit il va trouver le premier élément et s’arrêtera directement pour renvoyer True. En résumé, c’est comme si on se posait la question : Y a-t-il au moins un élément dans notre collection ?

Simple, n’est-ce pas ?!