2009-04-02 3 views

Odpowiedz

20

Dla .Net 2.0, prawie zawsze potrzebujesz słownika. Należy jednak pamiętać, że nie jest to tylko "drop in replacement" dla istniejącej tabeli Hashtable. Istnieją pewne różnice w sposobie ich działania (głównie sposób radzenia sobie z zerami), co oznacza, że ​​musisz najpierw sprawdzić kod.

+5

+1 Za wzmiankę o obsłudze wartości null. Dobrze byłoby wyjaśnić, że więcej, ponieważ może być nieco nieoczekiwane, uzyskać wyjątek zamiast wartości null, gdy klucz nie istnieje w słowniku. –

14

Hashtable jest dość przestarzałe. Może być przydatne do łączenia ze starszym kodem.

Dictionary to ogólna klasa wprowadzona w .NET 2.0, wraz z innymi klasami w przestrzeni nazw System.Collections.Generic. Zastępują one klasy w przestrzeni nazw System.Collections.

9

Główną zaletą HashTable jest to, że można z niego korzystać i docelowy .NET < 2.0.

W przeciwnym razie słownik < T, Y > (używany poprawnie) jest o wiele lepszy pod każdym względem.

0

Oto co wiem

1) słownik sklepów w par wartości kluczowych 2) Hastable także sklepów w par wartości kluczowych, ale używa klawisza skrótu do badania zawartości.

Więc gdybym miał zdecydować, czego użyć, powinienem użyć hashtable, jeśli moja kolekcja jest ogromna i chcę wyszukać konkretny przedmiot? Używaj słownika, jeśli kolekcja nie jest tak duża?

Również pytanie uzupełniające, w języku C#, hastable nie łańcuchów jak w c lub C++ jest to poprawne?