F # - Listes mutables

le List<'T> class représente une liste d'objets fortement typés accessibles par index.

C'est un équivalent mutable de la classe List. Il est similaire aux tableaux, car il est accessible par un index, cependant, contrairement aux tableaux, les listes peuvent être redimensionnées. Par conséquent, vous n'avez pas besoin de spécifier une taille lors de la déclaration.

Créer une liste mutable

Les listes sont créées à l'aide du newmot-clé et appelant le constructeur de la liste. L'exemple suivant illustre ceci -

(* Creating a List *)
open System.Collections.Generic

let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia

La classe List (T)

La classe List (T) représente une liste d'objets fortement typés accessibles par index. Il fournit des méthodes pour rechercher, trier et manipuler des listes.

Les tableaux suivants fournissent les propriétés, les constructeurs et les méthodes de la classe List (T) -

Propriétés

Propriété La description
Capacité Obtient ou définit le nombre total d'éléments que la structure de données interne peut contenir sans redimensionnement.
Compter Obtient le nombre d'éléments contenus dans la liste (T).
Article Obtient ou définit l'élément à l'index spécifié.

Constructeurs

Constructeur La description
Liste (T) () Initialise une nouvelle instance de la classe List (T) qui est vide et a la capacité initiale par défaut.
Liste (T) (IEnumerable (T)) Initialise une nouvelle instance de la classe List (T) qui contient des éléments copiés à partir de la collection spécifiée et a une capacité suffisante pour accueillir le nombre d'éléments copiés.
Liste (T) (Int32) Initialise une nouvelle instance de la classe List (T) qui est vide et a la capacité initiale spécifiée.

Méthode

Méthodes La description
Ajouter Ajoute un objet à la fin de la liste (T).
AddRange Ajoute les éléments de la collection spécifiée à la fin de la liste (T).
AsReadOnly Renvoie un wrapper IList (T) en lecture seule pour la collection actuelle.
Recherche binaire (T) Recherche dans toute la liste triée (T) un élément à l'aide du comparateur par défaut et renvoie l'index de base zéro de l'élément.
Recherche binaire (T, IComparer (T)) Recherche dans toute la liste triée (T) un élément à l'aide du comparateur spécifié et renvoie l'index de base zéro de l'élément.
Recherche binaire (Int32, Int32, T, IComparer (T)) Recherche un élément dans une plage d'éléments dans la liste triée (T) à l'aide du comparateur spécifié et retourne l'index de base zéro de l'élément.
Clair Supprime tous les éléments de la liste (T).
Contient Détermine si un élément est dans la liste (T).
ConvertAll (TOutput) Convertit les éléments de la liste actuelle (T) en un autre type et renvoie une liste contenant les éléments convertis.
Copier vers (T []) Copie la liste entière (T) dans un tableau unidimensionnel compatible, en commençant au début du tableau cible.
Copier vers (T [], Int32) Copie la liste entière (T) dans un tableau unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.
CopyTo (Int32, T [], Int32, Int32) Copie une plage d'éléments de la liste (T) dans un tableau unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.
Equals (objet) Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object.)
Existe Détermine si la liste (T) contient des éléments qui correspondent aux conditions définies par le prédicat spécifié.
Finaliser Permet à un objet d'essayer de libérer des ressources et d'effectuer d'autres opérations de nettoyage avant qu'il ne soit récupéré par le garbage collection (hérité de Object).
Trouver Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et renvoie la première occurrence dans toute la liste (T).
Trouver tout Récupère tous les éléments qui correspondent aux conditions définies par le prédicat spécifié.
FindIndex (Prédicat (T)) Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et renvoie l'index de base zéro de la première occurrence dans l'ensemble de List (T).
FindIndex (Int32, Prédicat (T)) Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et renvoie l'index de base zéro de la première occurrence dans la plage d'éléments de la liste (T) qui s'étend de l'index spécifié au dernier élément.
FindIndex (Int32, Int32, Prédicat (T)) Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et renvoie l'index de base zéro de la première occurrence dans la plage d'éléments de la liste (T) qui commence à l'index spécifié et contient le nombre d'éléments spécifié.
FindLast Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et renvoie la dernière occurrence dans toute la liste (T).
FindLastIndex (Prédicat (T)) Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et renvoie l'index de base zéro de la dernière occurrence dans l'ensemble de List (T).
FindLastIndex (Int32, Prédicat (T)) Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et retourne l'index de base zéro de la dernière occurrence dans la plage d'éléments de la liste (T) qui s'étend du premier élément à l'index spécifié.
FindLastIndex (Int32, Int32, Prédicat (T)) Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et renvoie l'index de base zéro de la dernière occurrence dans la plage d'éléments de la liste (T) qui contient le nombre spécifié d'éléments et se termine à l'index spécifié.
Pour chaque Exécute l'action spécifiée sur chaque élément de la liste (T).
GetEnumerator Renvoie un énumérateur qui parcourt la liste (T).
GetHashCode Sert de fonction de hachage par défaut. (Hérité de Object.)
GetRange Crée une copie superficielle d'une plage d'éléments dans la liste source (T).
GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
IndexOf (T) Recherche l'objet spécifié et renvoie l'index de base zéro de la première occurrence dans l'ensemble de List (T).
IndexOf (T, Int32) Recherche l'objet spécifié et retourne l'index de base zéro de la première occurrence dans la plage d'éléments de la liste (T) qui s'étend de l'index spécifié au dernier élément.
IndexOf (T, Int32, Int32) Recherche l'objet spécifié et retourne l'index de base zéro de la première occurrence dans la plage d'éléments de la liste (T) qui commence à l'index spécifié et contient le nombre d'éléments spécifié.
Insérer Insère un élément dans la liste (T) à l'index spécifié.
InsertRange Insère les éléments d'une collection dans la liste (T) à l'index spécifié.
LastIndexOf (T) Recherche l'objet spécifié et renvoie l'index de base zéro de la dernière occurrence dans l'ensemble de la liste (T).
LastIndexOf (T, Int32) Recherche l'objet spécifié et retourne l'index de base zéro de la dernière occurrence dans la plage d'éléments de la liste (T) qui s'étend du premier élément à l'index spécifié.
LastIndexOf (T, Int32, Int32) Recherche l'objet spécifié et retourne l'index de base zéro de la dernière occurrence dans la plage d'éléments de la liste (T) qui contient le nombre d'éléments spécifié et se termine à l'index spécifié.
MemberwiseClone Crée une copie superficielle de l'objet actuel. (Hérité de Object.)
Retirer Supprime la première occurrence d'un objet spécifique de la liste (T).
Enlever tout Supprime tous les éléments qui correspondent aux conditions définies par le prédicat spécifié.
RemoveAt Supprime l'élément à l'index spécifié de la liste (T).
RemoveRange Supprime une plage d'éléments de la liste (T).
Inverser() Inverse l'ordre des éléments dans toute la liste (T).
Inverser (Int32, Int32) Inverse l'ordre des éléments dans la plage spécifiée.
Trier() Trie les éléments de la liste entière (T) à l'aide du comparateur par défaut.
Trier (Comparaison (T)) Trie les éléments de la liste entière (T) à l'aide du système spécifié. Comparaison (T).
Trier (IComparer (T)) Trie les éléments de la liste entière (T) à l'aide du comparateur spécifié.
Trier (Int32, Int32, IComparer (T)) Trie les éléments d'une plage d'éléments dans List (T) à l'aide du comparateur spécifié.
ToArray Copie les éléments de la liste (T) dans un nouveau tableau.
ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
TrimExcess Définit la capacité sur le nombre réel d'éléments dans la liste (T), si ce nombre est inférieur à une valeur seuil.
TrueForAll Détermine si chaque élément de la liste (T) correspond aux conditions définies par le prédicat spécifié.

Exemple

(* Creating a List *)
open System.Collections.Generic

let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")

printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.Insert(2, "Roots")

printfn("after inserting at index 2")
printfn"Total %d books" booksList.Count

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.RemoveAt(3)

printfn("after removing from index 3")
printfn"Total %d books" booksList.Count

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
after inserting at index 2
Total 7 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Fountainhead
4: Thornbirds
5: Rebecca
6: Narnia
after removing from index 3
Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Thornbirds
4: Rebecca
5: Narnia