Sélection d'une classe de collection

Guide du développeur .NET Framework 
Sélection d'une classe de collection 

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 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 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 proposent un accès FIFO.

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

    • La classe générique LinkedList 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 ?

    • Une valeur : utilisez l'une des collections basée sur l'interface IList ou l'interface générique IList.

    • Une clé et une valeur : utilisez l'une des collections basée sur l'interface IDictionary ou l'interface générique IDictionary.

    • Une valeur avec clé incorporée : utilisez la classe générique KeyedCollection.

    • Une clé et plusieurs valeurs : utilisez la classe NameValueCollection.

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

    • La classe Hashtable trie ses éléments par leurs codes de hachage.

    • La classe SortedList et les classes génériques SortedDictionary et SortedList trient leurs éléments par la clé, selon les implémentations de l'interface IComparer et de l'interface générique IComparer.

    • ArrayList fournit une méthode Sort qui prend une implémentation IComparer comme paramètre. Son équivalent générique, la classe générique List, fournit une méthode Sort qui prend une implémentation de l'interface générique IComparer comme paramètre.

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

    • ListDictionary est plus rapide que Hashtable pour les petites collections (10 éléments ou moins). La classe générique SortedDictionary fournit une capacité de recherche plus rapide que la classe générique Dictionary.

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

    • StringCollection (sur la base de IList) et StringDictionary (sur la base de IDictionary) figurent dans l'espace de noms System.Collections.Specialized.

    • En outre, vous pouvez utiliser l'une des classes de collections génériques dans l'espace de noms System.Collections.Generic comme collection de chaînes fortement typée en spécifiant la classe String de leurs arguments de type générique.

Voir aussi


Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/6tc79sx1.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

7 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-4610
Document créé le 29/10/06 23:48, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-6tc79sx1.html Document affiché 7 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,64 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie).

Dave Small
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 00:45, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)