F # - zmienny słownik

Plik Dictionary<'TKey, 'TValue> class jest zmiennym analogiem struktury danych mapy F # i zawiera wiele takich samych funkcji.

Podsumowując rozdział Mapa w języku F #, mapa to specjalny rodzaj zestawu, który kojarzy wartości z kluczem.

Tworzenie słownika mutowalnego

Zmienne słowniki są tworzone przy użyciu rozszerzenia newsłowo kluczowe i wywołanie konstruktora listy. Poniższy przykład demonstruje to -

open System.Collections.Generic
let dict = new Dictionary<string, string>()
dict.Add("1501", "Zara Ali")
dict.Add("1502","Rishita Gupta")
dict.Add("1503","Robin Sahoo")
dict.Add("1504","Gillian Megan")
printfn "Dictionary - students: %A" dict

Kiedy kompilujesz i wykonujesz program, daje to następujące dane wyjściowe -

Dictionary - students: seq
[[1501, Zara Ali]; [1502, Rishita Gupta]; [1503, Robin Sahoo];
[1504, Gillian Megan]]

Klasa słownika (TKey, TValue)

Klasa Dictionary (TKey, TValue) reprezentuje zbiór kluczy i wartości.

Poniższe tabele zawierają właściwości, konstruktory i metody klasy List (T) -

Nieruchomości

własność Opis
Porównaj Pobiera IEqualityComparer (T), który jest używany do określania równości kluczy dla słownika.
Liczyć Pobiera liczbę par klucz / wartość zawartych w Dictionary (TKey, TValue).
Pozycja Pobiera lub ustawia wartość skojarzoną z określonym kluczem.
Klucze Pobiera kolekcję zawierającą klucze w Dictionary (TKey, TValue).
Wartości Pobiera kolekcję zawierającą wartości z Dictionary (TKey, TValue).

Konstruktorzy

Konstruktorzy Opis
Słownik (TKey, TValue) () Inicjuje nowe wystąpienie Dictionary(TKey, TValue) klasa, która jest pusta, ma domyślną pojemność początkową i używa domyślnej funkcji porównującej równość dla typu klucza.
Słownik (TKey, TValue) (IDictionary (TKey, TValue)) Inicjuje nowe wystąpienie Dictionary(TKey, TValue) klasa, która zawiera elementy skopiowane z określonego IDictionary(TKey, TValue) i używa domyślnej funkcji porównującej równość dla typu klucza.
Słownik (TKey, TValue) (IEqualityComparer (TKey)) Inicjuje nowe wystąpienie Dictionary(TKey, TValue) klasa, która jest pusta, ma domyślną pojemność początkową i używa określonej IEqualityComparer(T).
Słownik (TKey, TValue) (Int32) Inicjuje nowe wystąpienie Dictionary(TKey, TValue) klasa, która jest pusta, ma określoną pojemność początkową i używa domyślnej funkcji porównującej równość dla typu klucza.
Słownik (TKey, TValue) (IDictionary (TKey, TValue), IEqualityComparer (TKey)) Inicjuje nowe wystąpienie Dictionary(TKey, TValue) klasa, która zawiera elementy skopiowane z określonego IDictionary(TKey, TValue) i używa określonego IEqualityComparer(T).
Słownik (TKey, TValue) (Int32, IEqualityComparer (TKey)) Inicjuje nowe wystąpienie Dictionary(TKey, TValue) klasa, która jest pusta, ma określoną pojemność początkową i używa określonej IEqualityComparer(T).
Słownik (TKey, TValue) (SerializationInfo, StreamingContext) Inicjuje nowe wystąpienie ictionary(TKey, TValue) klasa z danymi serializowanymi.

Metody

metoda Opis
Dodaj Dodaje określony klucz i wartość do słownika.
Jasny Usuwa wszystkie klucze i wartości ze słownika (TKey, TValue).
ContainsKey Określa, czy Dictionary (TKey, TValue) zawiera określony klucz.
ContainsValue Określa, czy Dictionary (TKey, TValue) zawiera określoną wartość.
Równa się (obiekt) Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object.)
Sfinalizować Umożliwia obiektowi próbę zwolnienia zasobów i wykonanie innych operacji czyszczenia, zanim zostanie odzyskany przez wyrzucanie elementów bezużytecznych. (Odziedziczone po Object.)
GetEnumerator Zwraca moduł wyliczający, który wykonuje iterację w Dictionary (TKey, TValue).
GetHashCode Służy jako domyślna funkcja skrótu. (Odziedziczone po Object.)
GetObjectData Implementuje interfejs System.Runtime.Serialization.ISerializable i zwraca dane potrzebne do serializacji wystąpienia Dictionary (TKey, TValue).
GetType Pobiera typ bieżącego wystąpienia. (Odziedziczone po Object.)
MemberwiseClone Tworzy płytką kopię bieżącego obiektu. (Odziedziczone po Object.)
OnDeserialization Implementuje interfejs System.Runtime.Serialization.ISerializable i wywołuje zdarzenie deserializacji po zakończeniu deserializacji.
Usunąć Usuwa wartość z określonym kluczem z Dictionary (TKey, TValue).
ToString Zwraca ciąg, który reprezentuje bieżący obiekt. (Odziedziczone po Object.)
TryGetValue Pobiera wartość skojarzoną z określonym kluczem.

Przykład

open System.Collections.Generic
let dict = new Dictionary<string, string>()

dict.Add("1501", "Zara Ali")
dict.Add("1502","Rishita Gupta")
dict.Add("1503","Robin Sahoo")
dict.Add("1504","Gillian Megan")

printfn "Dictionary - students: %A" dict
printfn "Total Number of Students: %d" dict.Count
printfn "The keys: %A" dict.Keys
printf"The Values: %A" dict.Values

Kiedy kompilujesz i wykonujesz program, daje to następujące dane wyjściowe -

Dictionary - students: seq
[[1501, Zara Ali]; [1502, Rishita Gupta]; [1503, Robin Sahoo];
[1504, Gillian Megan]]
Total Number of Students: 4
The keys: seq ["1501"; "1502"; "1503"; "1504"]
The Values: seq ["Zara Ali"; "Rishita Gupta"; "Robin Sahoo"; "Gillian Megan"]