logo

Słownik C# z przykładami

W języku C# słownik jest kolekcją ogólną, która jest zwykle używana do przechowywania par klucz/wartość. Działanie Dictionary jest dość podobne do nieogólnej tablicy hashtable. Zaletą słownika jest to, że jest to typ ogólny. Słownik jest zdefiniowany w przestrzeni nazw System.Collections.Generic. Ma charakter dynamiczny, co oznacza, że ​​wielkość słownika rośnie w zależności od potrzeb. Ważne punkty:

  • Klasa Dictionary implementuje metodę
    • ISłownik Interfejs
    • Kolekcja IReadOnly Interfejs
    • IReadOnlyDictionary Interfejs
    • ISłownik Interfejs
  • W słowniku klucz nie może mieć wartości null, ale może mieć wartość.
  • W słowniku klucz musi być unikalny. Zduplikowane klucze nie są dozwolone, jeśli spróbujesz użyć zduplikowanego klucza, kompilator zgłosi wyjątek.
  • W Słowniku możesz przechowywać tylko elementy tego samego typu.
  • Pojemność słownika to liczba elementów, które może pomieścić słownik.

Jak stworzyć słownik?

Klasa słownika ma 7 konstruktorów które służą do tworzenia słownika, tutaj używamy tylko konstruktora Dictionary() i jeśli chcesz dowiedzieć się więcej o konstruktorach, zapoznaj się z C# | Klasa słownikowa . Słownik(): Ten konstruktor służy do tworzenia instancji klasy Dictionary, która jest pusta, ma domyślną pojemność początkową i używa domyślnej funkcji porównującej równość dla typu klucza w następujący sposób: Krok 1: Uwzględnij przestrzeń nazw System.Collections.Generic w swoim programie za pomocą słowa kluczowego using. Składnia:



using System.Collections.Generic;>

Krok 2: Utwórz słownik, korzystając z klasy Dictionary, jak pokazano poniżej:

Dictionary dictionary_name = new Dictionary();>

Krok 3: Jeśli chcesz dodać elementy do swojego słownika, użyj metody Add(), aby dodać pary klucz/wartość do swojego słownika. Możesz także dodać parę klucz/wartość do słownika bez użycia metody Add. Jak pokazano w poniższym przykładzie. Krok 4: Dostęp do pary klucz/wartość słownika uzyskuje się za pomocą trzy różne sposoby:

    pętla for: możesz użyć pętli for, aby uzyskać dostęp do par klucz/wartość słownika. Przykład:

CSharp



protokół udp






for>(>int> x=0; x { Console.WriteLine('{0} and {1}', My_dict1.Keys.ElementAt(x), My_dict1[ My_dict1.Keys.ElementAt(x)]); }>

>

>

    Korzystanie z indeksu: Dostęp do poszczególnych par klucz/wartość słownika można uzyskać, korzystając z jego wartości indeksu. Tutaj wystarczy podać klucz w indeksie, aby uzyskać wartość z danego słownika, nie ma potrzeby określania indeksu. Indeksator zawsze przyjmuje klucz jako parametr, jeżeli danego klucza nie ma w słowniku to podaje Wyjątek KeyNotFound . Przykład:

CSharp




Console.WriteLine('Value>is>:{0}', My_dicti[1123]);> Console.WriteLine('Value>is>:{0}', My_dicti[1125]);>

wyszukiwanie BFS
>

>

    Pętla foreach: Możesz użyć pętli foreach, aby uzyskać dostęp do par klucz/wartość słownika. Jak pokazano w poniższym przykładzie, dostęp do słownika uzyskujemy za pomocą pętli foreach.

Przykład:

CSharp




// C# program to illustrate how> // to create a dictionary> using> System;> using> System.Collections.Generic;> class> GFG {> >// Main Method> >static> public> void> Main () {> > >// Creating a dictionary> >// using Dictionary class> >Dictionary<>int>,>string>>Mój_dykt1 => >new> Dictionary<>int>,>string>>();> > >// Adding key/value pairs> >// in the Dictionary> >// Using Add() method> >My_dict1.Add(1123, 'Welcome');> >My_dict1.Add(1124, 'to');> >My_dict1.Add(1125, 'techcodeview.com');> > >foreach>(KeyValuePair<>int>,>string>>ele1>in> My_dict1)> >{> >Console.WriteLine('{0} and {1}',> >ele1.Key, ele1.Value);> >}> >Console.WriteLine();> > >// Creating another dictionary> >// using Dictionary class> >// adding key/value pairs without> >// using Add method> >Dictionary<>string>,>string>>Mój_dykt2 => >new> Dictionary<>string>,>string>>(){> >{'a.1', 'Dog'},> >{'a.2', 'Cat'},> >{'a.3', 'Pig'} };> > >foreach>(KeyValuePair<>string>,>string>>ele2>>in> My_dict2)> >{> >Console.WriteLine('{0} and {1}', ele2.Key, ele2.Value);> >}> >}> }>

>

>

Wyjście:

1123 and Welcome 1124 and to 1125 and techcodeview.com a.1 and Dog a.2 and Cat a.3 and Pig>

Jak usunąć elementy ze Słownika?

W Słowniku możesz usuwać elementy ze Słownika. Klasa Dictionary udostępnia dwie różne metody usuwania elementów, a są to metody:

  • Jasne : Ta metoda usuwa wszystkie klucze i wartości ze słownika.
  • Usunąć : Ta metoda usuwa wartość z określonym kluczem ze słownika.

Przykład:

CSharp


stlc



// C# program to illustrate how> // remove key/value pairs from> // the dictionary> using> System;> using> System.Collections.Generic;> class> GFG {> >// Main Method> >static> public> void> Main() {> > >// Creating a dictionary> >// using Dictionary class> >Dictionary<>int>,>string>>Mój_dykt => >new> Dictionary<>int>,>string>>();> > >// Adding key/value pairs in the> >// Dictionary Using Add() method> >My_dict.Add(1123, 'Welcome');> >My_dict.Add(1124, 'to');> >My_dict.Add(1125, 'techcodeview.com');> > >// Before Remove() method> >foreach>(KeyValuePair<>int>,>string>>on>in> My_dict)> >{> >Console.WriteLine('{0} and {1}',> >ele.Key, ele.Value);> >}> >Console.WriteLine();> > >// Using Remove() method> >My_dict.Remove(1123);> > >// After Remove() method> >foreach>(KeyValuePair<>int>,>string>>on>in> My_dict)> >{> >Console.WriteLine('{0} and {1}',> >ele.Key, ele.Value);> >}> >Console.WriteLine();> > > >// Using Clear() method> >My_dict.Clear();> > >Console.WriteLine('Total number of key/value '+> >'pairs present>in> My_dict:{0}', My_dict.Count);> > >}> }>

>

>

Wyjście:

1123 and Welcome 1124 and to 1125 and techcodeview.com 1124 and to 1125 and techcodeview.com Total number of key/value pairs present in My_dict:0>

Jak sprawdzić dostępność elementów w Słowniku?

W Słowniku możesz sprawdzić, czy dany klucz lub wartość występuje w podanym słowniku, czy nie. Klasa Dictionary udostępnia dwie różne metody sprawdzania, a są to metody:

  • Zawiera klucz : Ta metoda służy do sprawdzania, czy słownik zawiera określony klucz.
  • ZawieraWartość : Ta metoda służy do sprawdzania, czy słownik zawiera określoną wartość.

Przykład:

CSharp




// C# program to illustrate how> // to check the given key or> // value present in the dictionary> // or not> using> System;> using> System.Collections.Generic;> class> GFG {> >// Main Method> >static> public> void> Main () {> > >// Creating a dictionary> >// using Dictionary class> >Dictionary<>int>,>string>>Mój_dykt => >new> Dictionary<>int>,>string>>();> > >// Adding key/value pairs in the> >// Dictionary Using Add() method> >My_dict.Add(1123, 'Welcome');> >My_dict.Add(1124, 'to');> >My_dict.Add(1125, 'techcodeview.com');> > >// Using ContainsKey() method to check> >// the specified key is present or not> >if> (My_dict.ContainsKey(1122)==>true>)> >{> >Console.WriteLine('Key>is> found...!!');> >}> >else> >{> >Console.WriteLine('Key>is> not found...!!');> >}> > >// Using ContainsValue() method to check> >// the specified value is present or not> >if> (My_dict.ContainsValue('techcodeview.com')==>true>)> >{> >Console.WriteLine('Value>is> found...!!');> >}> >else> >{> >Console.WriteLine('Value>is> not found...!!');> >}> >}> }>

>

>

Wyjście:

Key is not found...!! Value is found...!!>