F # - Veränderbare Listen

Das List<'T> Klasse repräsentiert eine stark typisierte Liste von Objekten, auf die über den Index zugegriffen werden kann.

Es ist ein veränderbares Gegenstück zur List-Klasse. Es ähnelt Arrays, da über einen Index darauf zugegriffen werden kann. Im Gegensatz zu Arrays können Listen jedoch in der Größe geändert werden. Daher müssen Sie bei der Deklaration keine Größe angeben.

Erstellen einer veränderlichen Liste

Listen werden mit dem erstellt newSchlüsselwort und Aufruf des Konstruktors der Liste. Das folgende Beispiel zeigt dies -

(* 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])

Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:

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

Die List (T) -Klasse

Die Klasse List (T) repräsentiert eine stark typisierte Liste von Objekten, auf die über den Index zugegriffen werden kann. Es bietet Methoden zum Suchen, Sortieren und Bearbeiten von Listen.

Die folgenden Tabellen enthalten die Eigenschaften, Konstruktoren und Methoden der List (T) -Klasse -

Eigenschaften

Eigentum Beschreibung
Kapazität Ruft die Gesamtzahl der Elemente ab, die die interne Datenstruktur ohne Größenänderung enthalten kann, oder legt diese fest.
Anzahl Ruft die Anzahl der in der Liste (T) enthaltenen Elemente ab.
Artikel Ruft das Element ab oder setzt es auf den angegebenen Index.

Konstruktoren

Konstrukteur Beschreibung
Liste (T) () Initialisiert eine neue Instanz der List (T) -Klasse, die leer ist und die Standard-Anfangskapazität hat.
Liste (T) (IEnumerable (T)) Initialisiert eine neue Instanz der List (T) -Klasse, die Elemente enthält, die aus der angegebenen Sammlung kopiert wurden, und über eine ausreichende Kapazität verfügt, um die Anzahl der kopierten Elemente aufzunehmen.
Liste (T) (Int32) Initialisiert eine neue Instanz der List (T) -Klasse, die leer ist und die angegebene Anfangskapazität hat.

Methode

Methoden Beschreibung
Hinzufügen Fügt am Ende der Liste ein Objekt hinzu (T).
AddRange Fügt die Elemente der angegebenen Sammlung am Ende der Liste hinzu (T).
AsReadOnly Gibt einen schreibgeschützten IList (T) -Wrapper für die aktuelle Sammlung zurück.
BinarySearch (T) Durchsucht die gesamte sortierte Liste (T) mit dem Standardvergleich nach einem Element und gibt den auf Null basierenden Index des Elements zurück.
BinarySearch (T, IComparer (T)) Durchsucht die gesamte sortierte Liste (T) nach einem Element unter Verwendung des angegebenen Vergleichers und gibt den auf Null basierenden Index des Elements zurück.
BinarySearch (Int32, Int32, T, IComparer (T)) Durchsucht einen Bereich von Elementen in der sortierten Liste (T) nach einem Element unter Verwendung des angegebenen Vergleichers und gibt den auf Null basierenden Index des Elements zurück.
klar Entfernt alle Elemente aus der Liste (T).
Enthält Bestimmt, ob sich ein Element in der Liste befindet (T).
ConvertAll (TOutput) Konvertiert die Elemente in der aktuellen Liste (T) in einen anderen Typ und gibt eine Liste mit den konvertierten Elementen zurück.
CopyTo (T []) Kopiert die gesamte Liste (T) in ein kompatibles eindimensionales Array, beginnend am Anfang des Zielarrays.
CopyTo (T [], Int32) Kopiert die gesamte Liste (T) in ein kompatibles eindimensionales Array, beginnend mit dem angegebenen Index des Zielarrays.
CopyTo (Int32, T [], Int32, Int32) Kopiert eine Reihe von Elementen aus der Liste (T) in ein kompatibles eindimensionales Array, beginnend mit dem angegebenen Index des Zielarrays.
Gleich (Objekt) Legt fest, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Vom Objekt geerbt.)
Existiert Legt fest, ob die Liste (T) Elemente enthält, die den durch das angegebene Prädikat definierten Bedingungen entsprechen.
Finalisieren Ermöglicht einem Objekt, Ressourcen freizugeben und andere Bereinigungsvorgänge auszuführen, bevor es von der Speicherbereinigung (von Objekt geerbt) zurückgefordert wird.
Finden Sucht nach einem Element, das den durch das angegebene Prädikat definierten Bedingungen entspricht, und gibt das erste Vorkommen in der gesamten Liste (T) zurück.
Finde alle Ruft alle Elemente ab, die den durch das angegebene Prädikat definierten Bedingungen entsprechen.
FindIndex (Prädikat (T)) Sucht nach einem Element, das den durch das angegebene Prädikat definierten Bedingungen entspricht, und gibt den auf Null basierenden Index des ersten Vorkommens in der gesamten Liste (T) zurück.
FindIndex (Int32, Prädikat (T)) Sucht nach einem Element, das den durch das angegebene Prädikat definierten Bedingungen entspricht, und gibt den auf Null basierenden Index des ersten Vorkommens innerhalb des Elementbereichs in der Liste (T) zurück, der sich vom angegebenen Index bis zum letzten Element erstreckt.
FindIndex (Int32, Int32, Prädikat (T)) Sucht nach einem Element, das den durch das angegebene Prädikat definierten Bedingungen entspricht, und gibt den auf Null basierenden Index des ersten Auftretens innerhalb des Elementbereichs in der Liste (T) zurück, der am angegebenen Index beginnt und die angegebene Anzahl von Elementen enthält.
FindLast Sucht nach einem Element, das den durch das angegebene Prädikat definierten Bedingungen entspricht, und gibt das letzte Vorkommen in der gesamten Liste (T) zurück.
FindLastIndex (Prädikat (T)) Sucht nach einem Element, das den durch das angegebene Prädikat definierten Bedingungen entspricht, und gibt den auf Null basierenden Index des letzten Vorkommens in der gesamten Liste (T) zurück.
FindLastIndex (Int32, Prädikat (T)) Sucht nach einem Element, das den durch das angegebene Prädikat definierten Bedingungen entspricht, und gibt den auf Null basierenden Index des letzten Vorkommens innerhalb des Elementbereichs in der Liste (T) zurück, der sich vom ersten Element bis zum angegebenen Index erstreckt.
FindLastIndex (Int32, Int32, Prädikat (T)) Sucht nach einem Element, das den durch das angegebene Prädikat definierten Bedingungen entspricht, und gibt den auf Null basierenden Index des letzten Vorkommens innerhalb des Elementbereichs in der Liste (T) zurück, der die angegebene Anzahl von Elementen enthält und am angegebenen Index endet.
Für jeden Führt die angegebene Aktion für jedes Element der Liste (T) aus.
GetEnumerator Gibt einen Enumerator zurück, der die Liste (T) durchläuft.
GetHashCode Dient als Standard-Hash-Funktion. (Vom Objekt geerbt.)
GetRange Erstellt eine flache Kopie einer Reihe von Elementen in der Quellliste (T).
GetType Ruft den Typ der aktuellen Instanz ab. (Vom Objekt geerbt.)
IndexOf (T) Sucht nach dem angegebenen Objekt und gibt den auf Null basierenden Index des ersten Vorkommens in der gesamten Liste (T) zurück.
IndexOf (T, Int32) Sucht nach dem angegebenen Objekt und gibt den auf Null basierenden Index des ersten Vorkommens innerhalb des Elementbereichs in der Liste (T) zurück, der sich vom angegebenen Index bis zum letzten Element erstreckt.
IndexOf (T, Int32, Int32) Sucht nach dem angegebenen Objekt und gibt den auf Null basierenden Index des ersten Vorkommens innerhalb des Elementbereichs in der Liste (T) zurück, der am angegebenen Index beginnt und die angegebene Anzahl von Elementen enthält.
Einfügen Fügt ein Element am angegebenen Index in die Liste (T) ein.
InsertRange Fügt die Elemente einer Sammlung am angegebenen Index in die Liste (T) ein.
LastIndexOf (T) Sucht nach dem angegebenen Objekt und gibt den auf Null basierenden Index des letzten Vorkommens in der gesamten Liste (T) zurück.
LastIndexOf (T, Int32) Sucht nach dem angegebenen Objekt und gibt den auf Null basierenden Index des letzten Vorkommens innerhalb des Elementbereichs in der Liste (T) zurück, der sich vom ersten Element bis zum angegebenen Index erstreckt.
LastIndexOf (T, Int32, Int32) Sucht nach dem angegebenen Objekt und gibt den auf Null basierenden Index des letzten Vorkommens innerhalb des Elementbereichs in der Liste (T) zurück, der die angegebene Anzahl von Elementen enthält und am angegebenen Index endet.
MemberwiseClone Erstellt eine flache Kopie des aktuellen Objekts. (Vom Objekt geerbt.)
Entfernen Entfernt das erste Auftreten eines bestimmten Objekts aus der Liste (T).
Alles entfernen Entfernt alle Elemente, die den durch das angegebene Prädikat definierten Bedingungen entsprechen.
RemoveAt Entfernt das Element am angegebenen Index der Liste (T).
RemoveRange Entfernt eine Reihe von Elementen aus der Liste (T).
Umkehren() Kehrt die Reihenfolge der Elemente in der gesamten Liste um (T).
Rückwärts (Int32, Int32) Kehrt die Reihenfolge der Elemente im angegebenen Bereich um.
Sortieren() Sortiert die Elemente in der gesamten Liste (T) mit dem Standardvergleicher.
Sortieren (Vergleich (T)) Sortiert die Elemente in der gesamten Liste (T) mit dem angegebenen System. Vergleich (T).
Sortieren (IComparer (T)) Sortiert die Elemente in der gesamten Liste (T) mit dem angegebenen Vergleicher.
Sortieren (Int32, Int32, IComparer (T)) Sortiert die Elemente in einer Reihe von Elementen in Liste (T) unter Verwendung des angegebenen Vergleichers.
ToArray Kopiert die Elemente der Liste (T) in ein neues Array.
ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Vom Objekt geerbt.)
TrimExcess Legt die Kapazität auf die tatsächliche Anzahl der Elemente in der Liste (T) fest, wenn diese Anzahl unter einem Schwellenwert liegt.
TrueForAll Legt fest, ob jedes Element in der Liste (T) den durch das angegebene Prädikat definierten Bedingungen entspricht.

Beispiel

(* 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])

Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:

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