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

De Banane Atomic
Aller à la navigationAller à la recherche
m (Remplacement de texte — « <boxx>([^=]+)<\/boxx> » par « {{boxx|$1}} »)
 
 
(8 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Category:CSharp]]
= Links =
* [https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/guidelines-for-collections Guidelines for Collections]
* [[List]]
* [[List#ReadOnlyCollection|ReadOnlyCollection]]
= ArrayList =
= ArrayList =
Implémente l'interface {{boxx|IList}} à l'aide d'un tableau dont la taille est augmentée de manière dynamique.<br />
Implémente l'interface {{boxx|IList}} à l'aide d'un tableau dont la taille est augmentée de manière dynamique.<br />
Ligne 32 : Ligne 38 :
</kode>
</kode>


= Héritage =
= Hierarchy =
* [https://msdn.microsoft.com/en-us/library/vstudio/9eekhta0%28v=vs.110%29.aspx IEnumerable<T>]
[[File:ListHierarchy.png|500px]]
** GetEnumerator()
* [https://msdn.microsoft.com/en-us/library/92t2ye13%28v=vs.110%29.aspx ICollection<T>] : IEnumerable<T>, IEnumerable
** Count
** Add / Remove / Clear
** Contains
* [https://msdn.microsoft.com/en-us/library/5y536ey6%28v=vs.110%29.aspx IList<T>] : ICollection<T>, IEnumerable<T>, IEnumerable
** IndexOf
** Insert / RemoveAt
 
[[Category:CSharp]]

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