Array versus List : Quand utiliser lequel ?

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Array versus List : Quand utiliser lequel ?

Message par ForumBot »

Array versus List : Quand utiliser lequel ?

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Array versus List : Quand utiliser lequel ?

Message par ayi »

Il est rare, en realite, que vous souhaitiez utiliser un tableau. Utilisez definitivement un List<T> chaque fois que vous voulez ajouter/supprimer des donnees, car le redimensionnement des tableaux est couteux. Si vous savez que les donnees sont de taille fixe, et que vous souhaitez micro-optimiser pour une raison tres specifique (apres benchmark), alors un tableau peut etre utile.


List<T> offre beaucoup plus de fonctionnalites qu’un tableau (bien que LINQ equilibre un peu les choses), et c’est presque toujours le bon choix. Sauf pour les arguments params, bien sur. ;-p


En contrepartie - List<T> est unidimensionnel ; tandis que vous pouvez avoir des tableaux rectangulaires (etc.) comme int[,] ou string[,,] - mais il existe d’autres facons de modeliser ces donnees (si necessaire) dans un modele objet.


Voir aussi :



Cela dit, nous utilisons beaucoup les tableaux dans notre projet protobuf-net ; entierement pour des raisons de performance :




  • il effectue beaucoup de decalages de bits, donc un byte[] est pratiquement essentiel pour l’encodage ;




  • nous utilisons un tampon local roulant byte[] que nous remplissons avant de l’envoyer au flux sous-jacent (et vice-versa) ; plus rapide que BufferedStream etc. ;




  • il utilise en interne un modele base sur des tableaux d’objets (Foo[] plutot que List<Foo>), car la taille est fixe une fois construit, et doit etre tres rapide.




Mais c’est definitivement une exception ; pour le traitement metier courant, un List<T> l’emporte a chaque fois.

Répondre

Revenir à « .NET & C# »