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