Словарь <string, string> vs Hashtable <string, string> - PullRequest
2 голосов
/ 31 января 2012

Чем отличается между Hashtable<string,string> и Dictionary<string,string>?

Какой из них лучше использовать в Asp.net MVC?

Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

8 голосов
/ 31 января 2012

В BCL нет такого класса, как Hashtable<X, Y>.Есть класс Hashtable, который не является универсальной версией класса Dictionary<Tkey, TValue>.Он использовался еще во времена .NET 1.0 и 1.1, когда дженерики еще не были представлены в .NET.

Или, может быть, вы имели в виду класс HashSet<T>?Он представляет собой неупорядоченную коллекцию, содержащую уникальные элементы.У него есть стандартные операции сбора Add, Remove, Contains, но, поскольку он использует реализацию на основе хеша, это O (1).Это не хеш-таблица ключа / значения.

Какой из них лучше использовать в Asp.net MVC?

Это, очевидно, будет зависеть от ваших конкретных требований и от того, чтоты пытаешься достичь.Таким образом, правильный вопрос для вас - это не Which of X or Y is better in ASP.NET MVC, а Which of X or Y is better in order to achieve Z in ASP.NET MVC.

0 голосов
/ 31 января 2012

Кроме того @ ответ Дарина, ответ зависит от ваших требований.Для чего вы пытаетесь использовать это?Потому что есть больше альтернатив:

  • Хотите ли вы, чтобы дублирующиеся ключи были разрешены?Тогда есть Lookup<string,string> класс.
  • Вам нужно сравнение ключей без учета регистра?Тогда вы можете использовать NameValueCollection.

Но обычно вы вообще избегаете использовать Hashtable, поскольку Dictionary<string,object> - лучшая замена.

...