Partager via


Sélection d'une classe de collection

Mise à jour : novembre 2007

Veillez à choisir votre classe System.Collections avec beaucoup de soin. Le choix d'une collection erronée peut limiter l'usage que vous pouvez en faire.

Réfléchissez aux questions suivantes :

  • Avez-vous besoin d'une liste séquentielle dans laquelle l'élément est généralement abandonné une fois sa valeur récupérée ?

    • Si oui, vous devez envisager d'utiliser la classe Queue ou la classe générique Queue<T> si vous avez besoin d'un comportement de premier entré premier sorti (FIFO). Vous devez envisager d'utiliser la classe Stack ou la classe générique Stack<T> si vous avez besoin d'un comportement de dernier entré premier sorti (LIFO).

    • Sinon, vous devez envisager d'utiliser les autres collections.

  • Devez-vous accéder aux éléments dans un ordre précis, tel que FIFO, LIFO ou dans un ordre aléatoire ?

    • La classe Queue et la classe générique Queue<T> proposent un accès FIFO.

    • La classe Stack et la classe générique Stack<T> proposent un accès LIFO.

    • La classe générique LinkedList<T> autorise un accès séquentiel à partir du début ou de la fin.

    • Les autres collections offrent un accès aléatoire.

  • Avez-vous besoin d'accéder à chaque élément par son index ?

  • Chaque élément contiendra-t-il une seule valeur, une combinaison d'une clé et d'une valeur ou une combinaison d'une clé et de plusieurs valeurs ?

  • Avez-vous besoin de trier les éléments dans un ordre différent de celui dans lequel ils ont été entrés ?

  • Avez-vous besoin d'opérations de recherche et de récupération d'informations rapides ?

  • Avez besoin de collections qui acceptent uniquement des chaînes ?

LINQ to Objects

LINQ to Objects permet aux développeurs d'utiliser des requêtes LINQ pour accéder aux objets en mémoire tant que le type d'objet implémente IEnumerable ou IEnumerable<T>. Les requêtes LINQ fournissent un modèle commun pour accéder aux données, sont généralement plus concises et lisibles que les boucles foreach standard et intègrent des fonctions de filtrage, de classement et de regroupement. En outre, les requêtes LINQ peuvent également augmenter les performances. Pour plus d'informations, consultez LINQ to Objects.

Voir aussi

Référence

System.Collections

System.Collections.Specialized

System.Collections.Generic

Autres ressources

Création et manipulation de collections