Słownik to przydatna struktura danych, która umożliwia przechowywanie par klucz-wartość. Możesz efektywnie uzyskać dostęp do wartości ze słownika za pomocą jej klucza.
Słowniki w języku C# obsługują akcje, takie jak usuwanie wartości lub iterowanie po całym zestawie wartości.
Co to jest słownik w C#?
Słownik C# jest jednym z najważniejsze struktury danych możesz się dowiedzieć. To trochę jak struktura danych Java HashMap. Jego klucze muszą być unikalne, ale mogą być prawie dowolnego typu. Prosty słownik używa wartości skalarnych.
Na przykład ten zestaw danych zawiera identyfikator zwierzaka jako klucz i imię zwierzaka jako wartość:
{1001, "Mia"},
{1002, "Oscar"},
{1003, "Ptak"},
{1004, "Niebieski"},
{1005, "Lew"},
{1006, "Travis"}
Ta struktura umożliwia dostęp do danych przy użyciu konkretnego klucza, który odwołuje się do rekordu. Na przykład możesz pobrać rekord z wartością Ptaszyna odwołując się do niego za pomocą klawisza wyszukiwania 1003.
Jak stworzyć słownik
Aby utworzyć słownik, musisz określić typ obiektu zarówno dla klucza, jak i dla wartości.
- Utwórz słownik. W tym przykładzie klucz jest liczbą całkowitą, a wartością każdego rekordu jest łańcuch.
Słownik<int, strunowy> zwierzęta = Nowy Słownik<int, strunowy>();
- Będziesz musiał użyć System. Kolekcje. Rodzajowy przestrzeń nazw zawierająca klasę Dictionary. Upewnij się, że robisz to na początku pliku:
za pomocą System. Kolekcje. Rodzajowy;
Jak dodawać pozycje do słownika
Możesz dodawać pozycje do słownika w trakcie lub po jego inicjalizacji.
- Możesz dodawać elementy podczas inicjowania słownika. Aby to zrobić, dodaj kilka wartości w nawiasach klamrowych po początkowej nowej instrukcji Dictionary.
Słownik<int, strunowy> zwierzęta = Nowy Słownik<int, strunowy>()
{
{1001, "Mia"},
{1002, "Oscar"},
{1003, "Ptak"},
{1004, "Niebieski"},
{1005, "Lew"},
{1006, "Travis"}
}; - Jeśli już utworzyłeś słownik, możesz użyć wbudowanej metody Add() słownika.
zwierzęta. Dodać(1007, „Śnieżny”);
Nie możesz dodać wartości do klucza, który już istnieje. Jeśli spróbujesz to zrobić, otrzymasz ArgumentException.
Nie możesz użyć zero wartość jako klucz do wpisu w słowniku. Możesz jednak przechowywać w słowniku wartość null.
Jak dodawać obiekty do słownika
Jeśli używaszprogramowanie obiektowe stylu, prawdopodobnie masz co najmniej jedną klasę, której używasz do tworzenia obiektów. Załóżmy, że prowadzisz zajęcia, które przechowują szczegółowe informacje o zwierzętach domowych:
Możesz dodawać obiekty utworzone z tej klasy do słownika.
- Upewnij się, że tworzysz słownik z typem obiektu Pet określonym dla wartości.
Słownik<int, Zwierze> petObiekty = Nowy Słownik<int, Zwierzę>();
- Stwórz swojego zwierzaka.
Mia zwierzaka = Nowy Zwierzak domowy(1001, "Mia", Nowy DataGodzina(2010, 6, 29), 9.0,
Nowy DataGodzina(2022, 05, 02)); - Dodaj nowy obiekt zwierzaka do słownika.
petObiekty. Dodać(1001mia);
Jak uzyskać dostęp do pozycji w słowniku
Możesz uzyskać dostęp do pozycji w słowniku za pomocą klawisza.
- Użyj nazwy zmiennej dla słownika, a następnie klucza wokół pary nawiasów kwadratowych. To zwróci obiekt przechowywany w tej konkretnej części słownika.
var zwierzak = petObiekty[1001];
Konsola. WriteLine (nazwa zwierzaka);
Jak iterować po słowniku
Możesz użyć dla każdego pętla do iteracji po słowniku:
- Użyj foreach, aby wykonać iterację każdej pary KeyValuePair w słowniku. Zakładając, że wywołałeś swój iterator wejście, możesz uzyskać dostęp do klucza i wartości za pomocą wejście. Klucz oraz wejście. Wartość.
dla każdego (ParaWartościKluczowych<int, Zwierzak> wpis w petObiekty)
{
// drukuj klucz
Konsola. WriteLine (wpis. Klucz);// drukuj nazwę obiektu dla tego rekordu
Konsola. WriteLine (wpis. Wartość.nazwa);
}
Jak zaktualizować pozycję w słowniku
Możesz zaktualizować element, nadpisując jego wartość w słowniku.
- Jeśli masz w słowniku proste typy obiektów, możesz bezpośrednio nadpisać wartość rekordu.
zwierzęta domowe1001] = "Maja";
- Jeśli dodałeś obiekty do słownika, możesz nadpisać wartość zupełnie nowym obiektem.
Zajączek = Nowy Zwierzak domowy(1001, "Królik", Nowy DataGodzina(2021, 8, 1), 3.0, Nowy DataGodzina(2021, 8, 4));
petObiekty[1001] = królik; - Jeśli masz obiekt w słowniku, możesz również zaktualizować pojedynczą właściwość. Możesz nadpisać wartość właściwości bezpośrednio lub użyć settera.
petObiekty[1001].nazwa = "Maja";
// LUB
petObiekty[1001].setName("Maja");
Jak usunąć pozycję w słowniku
Możesz wybrać, aby usunąć pojedynczy element lub wszystkie elementy.
- Aby usunąć pojedynczy element, użyj wbudowanej metody Remove() słownika. Jako argument wprowadź klucz rekordu, który chcesz usunąć.
petObiekty. Usunąć(1002);
- Aby usunąć wszystkie elementy ze słownika, użyj wbudowanej metody Clear() słownika
petObiekty. Jasny();
Struktury danych w C#
W tym samouczku omówiono sposób tworzenia słownika w języku C# i dodawania elementów do słownika. Ponadto omówiono również sposób aktualizowania, usuwania i iteracji słownika.
Jeśli chcesz poszerzyć słownictwo dotyczące struktury danych, możesz zacząć odkrywać bardziej zaawansowane struktury danych. Niektóre przykłady obejmują stertę Fibonacciego, drzewo AVL lub drzewo Red Black.
3 zaawansowane struktury danych, które każdy programista powinien znać
Czytaj dalej
Powiązane tematy
- Programowanie
- Słownik
- Programowanie
O autorze
Sharlene jest pisarzem technicznym w MUO, a także pracuje na pełny etat w tworzeniu oprogramowania. Posiada tytuł Bachelor of IT oraz wcześniejsze doświadczenie w zapewnianiu jakości i udzielaniu korepetycji uniwersyteckich. Sharlene uwielbia grać i grać na pianinie.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować