Metoda C# ToDictionary

Metoda C Todictionary



Funkcja ToDictionary w języku C# to funkcja rozszerzenia LINQ, która umożliwia przekształcenie zbioru danych w słownik, który oferuje przejrzysty i praktyczny sposób mapowania jednostek na różne klucze i powiązane wartości. Wymaga dwóch argumentów, dwóch delegatów lub wyrażeń lambda, jednego do wybrania klucza i dodatkowego do wybrania wartości dla każdego obiektu w kolekcji. W tym artykule wykorzystamy kilka przykładów kodu C#, aby zademonstrować zastosowanie funkcji ToDictionary.

Składnia:

Rozłóżmy i zrozummy jeden po drugim każdy komponent dostarczony w ramach następującej składni funkcji C# ToDictionary:



było dyktowane = kolekcja. Do słownika ( selektor kluczy , Selektor elementu ) ;
  • Słowo kluczowe „var” zostało tutaj usunięte, aby zdefiniować kategorię typu wynikowego słownika „dict”. W większości przypadków jest to Dictionary, gdzie K jest typem klucza, a V jest kategorią typu wartości słownika.
  • Element „kolekcja” reprezentuje kolekcję źródłową, którą chcesz przekonwertować na słownik „dyktowany”. Może to być dowolna klasa implementująca interfejs IEnumerable, taka jak lista, tablica lub wynik zapytania.
  • Słowo kluczowe „keySelector” to delegat lub wyrażenie lambda, które określa sposób wyodrębnienia klucza z każdego elementu kolekcji. Pobiera element z kolekcji jako argument i zwraca wartość klucza dla tego elementu. Klucz powinien być unikalny dla każdego elementu kolekcji, ponieważ słowniki nie mogą mieć duplikatów kluczy.
  • Słowo kluczowe „elementSelector” odnosi się do delegata lub wyrażenia lambda, które określa sposób wyodrębnienia wartości z każdego elementu w kolekcji. Otrzymuje również element kolekcji jako argument i zwraca wartość tego elementu.

Po wykonaniu funkcji ToDictionary otrzymasz nowy obiekt słownika, w którym każdy element kolekcji jest reprezentowany jako para klucz-wartość.







Przykład 1:

Zacznijmy od nowa w tym przewodniku, demonstrując użycie funkcji ToDictionary w języku C# za pomocą przykładowego kodu. Przejdźmy przez to krok po kroku.



Kod zaczyna się od zaimportowania wymaganych przestrzeni nazw: System, System.Collections.Generic i System.Linq. Te przestrzenie nazw zapewniają niezbędne klasy i metody rozszerzeń do pracy z kolekcjami i LINQ. Zdefiniowano klasę „Dummy”, która zawiera metodę „Main” tego programu w języku C#.



Wewnątrz metody „Main” tworzona jest lista o nazwie „L”. Ta lista zawiera trzy elementy ciągu, które reprezentują nazwy różnych perfum wybranych przez użytkownika. Na liście „L” wywoływana jest metoda ToDictionary. Konwertuje listę na słownik. Każdy element ciągu na liście służy zarówno jako klucz, jak i wartość w wynikowym słowniku.





Słownik jest tworzony przy użyciu porównania kluczy bez rozróżniania wielkości liter przy użyciu parametru StringComparer.OrdinalIgnoreCase, który jest używany głównie do określania porównania bez uwzględniania wielkości liter podczas sprawdzania istnienia kluczy. Instrukcja „if” sprawdza, czy słownik zawiera klucz „bomba”, ignorując jego wielkość liter. Jeśli klucz zostanie znaleziony, fragment kodu w sekcji „jeśli” zostanie przetworzony. Wewnątrz bloku „if” wykonywana jest instrukcja Console.WriteLine („Bombshell istnieje”), która wyświetla na konsoli komunikat „Bombshell istnieje”.

za pomocą Systemu ;

za pomocą Systemu. Kolekcje . Ogólny ;

za pomocą Systemu. Linq ;

klasowy manekin

{

statyczny próżnia Główny ( )

{

Lista < strunowy > L = Nowa lista < strunowy > ( ) { „Czarne opium” , 'Bomba' , „GucciFlora” } ;

były perfumy = L. Do słownika ( X => X , X => PRAWDA , Porównywarka ciągów. PorządkowaIgnorujPrzypadek ) ;

Jeśli ( Perfumy. Zawiera klucz ( 'bomba' ) )

{

Konsola. Napisz Linię ( „Bomba istnieje” ) ;

}

}

}

Ponieważ słownik jest tworzony przy użyciu porównania bez uwzględniania wielkości liter, klucz „bombshell” odpowiada rzeczywistemu kluczowi „Bombshell” w słowniku. W rezultacie na konsoli drukowany jest komunikat „Bombshell istnieje”, jak pokazano na poniższym załączonym obrazie wyjściowym:



Przykład 2:

W poprzednim przykładzie kodu zademonstrowaliśmy, jak prostą kolekcję można przekonwertować na słownik za pomocą funkcji ToDictionary. Teraz przejdziemy do nieco zaawansowanego przykładu kodu C# w celu demonstracji użycia funkcji C# ToDictionary. Podzielmy kod linia po linii.

Ten ilustracyjny fragment kodu rozpoczyna się od wprowadzenia tych samych obowiązkowych przestrzeni nazw: System, System.Collections.Generic i System.Linq. Te przestrzenie nazw zapewniają wymagane klasy i metody rozszerzenia do pracy z kolekcjami i LINQ dla tego przykładowego kodu. Zdefiniowana jest klasa „Dummy”, która jest punktem wejścia.

Wewnątrz metody „Main” języka C# tworzona jest lista o nazwie „L”. Lista ta zawiera trzy obiekty klasy „Dane”, które reprezentują różne produkty kosmetyczne wraz z ich cenami i markami. Każdy obiekt danych jest inicjowany przy użyciu składni inicjatora obiektu. Właściwości „Cena” i „Marka” każdego obiektu mają ustawione określone wartości.

Oto metoda ToDictionary. Nazywa się go tutaj na liście „L”. Konwertuje listę do słownika, w którym właściwość „Cena” jest używana jako klucz, a właściwość „Marka” jest używana jako wartość. Powstały słownik jest przypisywany do zmiennej „Dic”, jak wspomniano w poniższym fragmencie kodu. Pętla „foreach” jest odrzucana w celu wywołania par klucz-wartość ze słownika „Dic”.

Wewnątrz pętli dostęp do klucza i wartości każdej pary uzyskuje się za pomocą właściwości „Key” i „Value” struktury KeyValuePair. Instrukcja funkcji Console.WriteLine wypisuje każdą parę klucz-wartość na konsoli. Dane wyjściowe są formatowane przy użyciu interpolacji ciągów, aby oddzielnie wyświetlać informacje o cenie i marce.

Tutaj klasa „Data” jest zdefiniowana za pomocą dwóch właściwości: „Price” (liczba całkowita reprezentująca cenę produktu kosmetycznego) i „Brand” (ciąg znaków reprezentujący markę produktu).

za pomocą Systemu ;

za pomocą Systemu. Kolekcje . Ogólny ;

za pomocą Systemu. Linq ;

klasowy manekin

{

statyczny próżnia Główny ( )

{

Lista < Dane > L = Nowa lista < Dane > ( )

{

nowe dane { Cena = 13000 , Marka = „Piękno Hudy” } ,

nowe dane { Cena = 15000 , Marka = „Charlotte Telburry” } ,

nowe dane { Cena = 11000 , Marka = „Nars” }

} ;

Słownik < wew , strunowy > grudzień = L. Do słownika ( P => P. Cena , P => P. Marka ) ;

dla każdego ( var v w Dic )

{

Konsola. Napisz Linię ( $ „Cena: {v.Key}, marka: {v.Value}” ) ;

}

}

}

Dane klasy

{

publiczny wew Cena { Dostawać ; ustawić ; }

ciąg publiczny Marka { Dostawać ; ustawić ; }

}

Kiedy kod jest wykonywany, tworzy listę obiektów danych, konwertuje tę listę na słownik przy użyciu metody ToDictionary, a następnie wyświetla pary klucz-wartość słownika za pomocą pętli „foreach”.

Dane wyjściowe tego przykładowego kodu znajdują się poniżej. Pokazuje ceny i marki produktów kosmetycznych, które są przechowywane w słowniku na podstawie określonych właściwości, zapewniając wygodny sposób porządkowania danych i dostępu do nich w parach klucz-wartość. Dane wyjściowe poprzedniego kodu pokazują trzy rekordy słownika:

Wniosek

W tym przewodniku po języku C# zademonstrowano użycie metody C# ToDictionary za pomocą kilku podstawowych i precyzyjnych ilustracji kodu. Oferując przejrzysty i wyrazisty mechanizm opisu par klucz-wartość, metoda ToDictionary ułatwia przekształcenie kolekcji w słownik. Jest to silne narzędzie C# do manipulowania i przekształcania danych.