« IEnumerable, IList, ICollection » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
 
Ligne 1 : Ligne 1 :
[[Category:CSharp]]
[[Category:CSharp]]
= Links =
= Links =
* [https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/guidelines-for-collections Guidelines for Collections]
* [[List]]
* [[List]]
* [[List#ReadOnlyCollection|ReadOnlyCollection]]
* [[List#ReadOnlyCollection|ReadOnlyCollection]]

Dernière version du 20 février 2022 à 16:29

Links

ArrayList

Implémente l'interface IList à l'aide d'un tableau dont la taille est augmentée de manière dynamique.
Son contenu n'est pas fortement typé.

SortedList

Collection de paires clé/valeur triées par les clés et accessible par clé et par index.

Différences entre SortedList et SortedDictionary:
  • SortedList uses less memory than SortedDictionary.
  • SortedDictionary has faster insertion and removal operations for unsorted data, O(log n) as opposed to O(n) for SortedList.
  • If the list is populated all at once from sorted data, SortedList is faster than SortedDictionary.

Queue

FIFO: file d'attente, le premier élément ajouté est le premier à sortir.

Bash.svg
Queue<int> q = new Queue<int>();
q.Enqueue(0);
q.Enqueue(1);
int i = q.Dequeue();  // 0
int j = q.Dequeue();  // 1

Stack

LIFO: pile, le dernier élément ajouté et le premier à sortir.

Csharp.svg
var s = new Stack<int>();
s.Push(0);
s.Push(1);
int i = s.Pop(); // 1
int j = s.Peek(); // 0
// Peek retourne l'élément du haut de la pile mais sans le supprimer
int j = s.Pop(); // 0

Hierarchy

ListHierarchy.png