F # - listy modyfikowalne
Plik List<'T> class reprezentuje silnie wpisaną listę obiektów, do których można uzyskać dostęp za pomocą indeksu.
Jest to zmienny odpowiednik klasy List. Jest podobny do tablic, ponieważ można uzyskać do niego dostęp za pomocą indeksu, jednak w przeciwieństwie do tablic można zmieniać rozmiar list. Dlatego nie musisz określać rozmiaru podczas deklaracji.
Tworzenie listy mutacji
Listy są tworzone przy użyciu newsłowo kluczowe i wywołanie konstruktora listy. Poniższy przykład demonstruje to -
(* 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])
Kiedy kompilujesz i wykonujesz program, daje to następujące dane wyjściowe -
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
Klasa List (T)
Klasa List (T) reprezentuje listę obiektów, do których można uzyskać dostęp za pomocą indeksu. Zapewnia metody wyszukiwania, sortowania i manipulowania listami.
Poniższe tabele zawierają właściwości, konstruktory i metody klasy List (T) -
Nieruchomości
własność | Opis |
---|---|
Pojemność | Pobiera lub ustawia całkowitą liczbę elementów, które wewnętrzna struktura danych może przechowywać bez zmiany rozmiaru. |
Liczyć | Pobiera liczbę elementów zawartych na liście (T). |
Pozycja | Pobiera lub ustawia element pod określonym indeksem. |
Konstruktorzy
Konstruktor | Opis |
---|---|
Lista (T) () | Inicjuje nowe wystąpienie klasy List (T), które jest puste i ma domyślną pojemność początkową. |
Lista (T) (IEnumerable (T)) | Inicjuje nowe wystąpienie klasy List (T), które zawiera elementy skopiowane z określonej kolekcji i ma wystarczającą pojemność, aby pomieścić liczbę skopiowanych elementów. |
Lista (T) (Int32) | Inicjuje nowe wystąpienie klasy List (T), które jest puste i ma określoną pojemność początkową. |
metoda
Metody | Opis |
---|---|
Dodaj | Dodaje obiekt na końcu listy (T). |
AddRange | Dodaje elementy określonej kolekcji na końcu List (T). |
AsReadOnly | Zwraca otokę IList (T) tylko do odczytu dla bieżącej kolekcji. |
BinarySearch (T) | Przeszukuje całą posortowaną List (T) dla elementu przy użyciu domyślnej funkcji porównującej i zwraca indeks elementu liczony od zera. |
BinarySearch (T, IComparer (T)) | Przeszukuje całą posortowaną List (T) dla elementu przy użyciu określonej funkcji porównującej i zwraca indeks elementu liczony od zera. |
BinarySearch (Int32, Int32, T, IComparer (T)) | Przeszukuje zakres elementów w posortowanej List (T) dla elementu przy użyciu określonej funkcji porównującej i zwraca indeks elementu liczony od zera. |
Jasny | Usuwa wszystkie elementy z listy (T). |
Zawiera | Określa, czy element znajduje się na liście (T). |
ConvertAll (TOutput) | Konwertuje elementy w bieżącej List (T) na inny typ i zwraca listę zawierającą przekonwertowane elementy. |
CopyTo (T []) | Kopiuje całą List (T) do zgodnej jednowymiarowej tablicy, zaczynając od początku tablicy docelowej. |
CopyTo (T [], Int32) | Kopiuje całą List (T) do zgodnej jednowymiarowej tablicy, rozpoczynając od określonego indeksu tablicy docelowej. |
CopyTo (Int32, T [], Int32, Int32) | Kopiuje zakres elementów z List (T) do zgodnej jednowymiarowej tablicy, rozpoczynając od określonego indeksu tablicy docelowej. |
Równa się (obiekt) | Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object.) |
Istnieje | Określa, czy List (T) zawiera elementy, które pasują do warunków zdefiniowanych przez określony predykat. |
Sfinalizować | Umożliwia obiektowi próbę zwolnienia zasobów i wykonanie innych operacji czyszczenia, zanim zostanie odzyskany przez wyrzucanie elementów bezużytecznych (dziedziczony z obiektu). |
Odnaleźć | Wyszukuje element, który spełnia warunki zdefiniowane przez określony predykat i zwraca pierwsze wystąpienie w całym List (T). |
Znajdź wszystko | Pobiera wszystkie elementy, które pasują do warunków zdefiniowanych przez określony predykat. |
FindIndex (Predicate (T)) | Wyszukuje element, który spełnia warunki zdefiniowane przez określony predykat i zwraca indeks (liczony od zera) pierwszego wystąpienia w całym List (T). |
FindIndex (Int32, Predicate (T)) | Wyszukuje element, który pasuje do warunków zdefiniowanych przez określony predykat i zwraca indeks (liczony od zera) pierwszego wystąpienia w zakresie elementów na List (T), który rozciąga się od określonego indeksu do ostatniego elementu. |
FindIndex (Int32, Int32, Predicate (T)) | Wyszukuje element, który spełnia warunki zdefiniowane przez określony predykat, i zwraca indeks (liczony od zera) pierwszego wystąpienia w zakresie elementów na liście (T), który zaczyna się od określonego indeksu i zawiera określoną liczbę elementów. |
FindLast | Wyszukuje element, który spełnia warunki zdefiniowane przez określony predykat i zwraca ostatnie wystąpienie w całym List (T). |
FindLastIndex (Predicate (T)) | Wyszukuje element, który pasuje do warunków zdefiniowanych przez określony predykat i zwraca indeks (liczony od zera) ostatniego wystąpienia w całym List (T). |
FindLastIndex (Int32, predykat (T)) | Wyszukuje element, który pasuje do warunków zdefiniowanych przez określony predykat i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów w List (T), który rozciąga się od pierwszego elementu do określonego indeksu. |
FindLastIndex (Int32, Int32, Predicate (T)) | Wyszukuje element, który spełnia warunki zdefiniowane przez określony predykat, i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów na List (T), który zawiera określoną liczbę elementów i kończy się na określonym indeksie. |
Dla każdego | Wykonuje określoną akcję na każdym elemencie List (T). |
GetEnumerator | Zwraca moduł wyliczający, który wykonuje iterację przez List (T). |
GetHashCode | Służy jako domyślna funkcja skrótu. (Odziedziczone po Object.) |
GetRange | Tworzy płytką kopię zakresu elementów na liście źródłowej (T). |
GetType | Pobiera typ bieżącego wystąpienia. (Odziedziczone po Object.) |
IndexOf (T) | Wyszukuje określony obiekt i zwraca indeks (liczony od zera) pierwszego wystąpienia w całym List (T). |
IndexOf (T; Int32) | Wyszukuje określony obiekt i zwraca indeks (liczony od zera) pierwszego wystąpienia w zakresie elementów w List (T), który rozciąga się od określonego indeksu do ostatniego elementu. |
IndexOf (T, Int32, Int32) | Wyszukuje określony obiekt i zwraca indeks (liczony od zera) pierwszego wystąpienia w zakresie elementów w List (T), który zaczyna się od określonego indeksu i zawiera określoną liczbę elementów. |
Wstawić | Wstawia element do List (T) o określonym indeksie. |
InsertRange | Wstawia elementy kolekcji do List (T) o określonym indeksie. |
LastIndexOf (T) | Wyszukuje określony obiekt i zwraca indeks (liczony od zera) ostatniego wystąpienia w całym List (T). |
LastIndexOf (T; Int32) | Wyszukuje określony obiekt i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów w List (T), który rozciąga się od pierwszego elementu do określonego indeksu. |
LastIndexOf (T, Int32, Int32) | Wyszukuje określony obiekt i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów w List (T), który zawiera określoną liczbę elementów i kończy się na określonym indeksie. |
MemberwiseClone | Tworzy płytką kopię bieżącego obiektu. (Odziedziczone po Object.) |
Usunąć | Usuwa pierwsze wystąpienie określonego obiektu z listy (T). |
Usuń wszystko | Usuwa wszystkie elementy, które pasują do warunków zdefiniowanych przez określony predykat. |
UsuńAt | Usuwa element pod określonym indeksem List (T). |
RemoveRange | Usuwa zakres elementów z listy (T). |
Odwrócić() | Odwraca kolejność elementów na całej liście (T). |
Odwrotny (Int32, Int32) | Odwraca kolejność elementów w określonym zakresie. |
Sortować() | Sortuje elementy w całej liście (T) przy użyciu domyślnej funkcji porównującej. |
Sortuj (porównanie (T)) | Sortuje elementy w całej List (T) przy użyciu określonego System. Porównanie (T). |
Sortuj (IComparer (T)) | Sortuje elementy w całej List (T) przy użyciu określonej funkcji porównującej. |
Sortuj (Int32, Int32, IComparer (T)) | Sortuje elementy w zakresie elementów w List (T) przy użyciu określonej funkcji porównującej. |
ToArray | Kopiuje elementy List (T) do nowej tablicy. |
ToString | Zwraca ciąg, który reprezentuje bieżący obiekt. (Odziedziczone po Object.) |
TrimExcess | Ustawia pojemność na rzeczywistą liczbę elementów na liście (T), jeśli ta liczba jest mniejsza niż wartość progowa. |
TrueForAll | Określa, czy każdy element na liście (T) jest zgodny z warunkami zdefiniowanymi przez określony predykat. |
Przykład
(* 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])
Kiedy kompilujesz i wykonujesz program, daje to następujące dane wyjściowe -
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