KeyValuePair
es la unidad de datos almacenada en un Hashtable
(o Dictionary
). No son equivalentes el uno al otro.
Un par de valores clave contiene una sola clave y un único valor. Un diccionario o hashtable contiene una asignación de muchas claves a sus valores asociados.
KeyValuePair
es útil cuando desea almacenar dos piezas de información relacionadas como una sola unidad, especialmente cuando una está relacionada con la otra de forma identificativa (por ejemplo, 1234 => "David Smith"). También son lo que obtienes cuando iteras un diccionario. En .NET 4.0, estos solo están destinados a ser utilizados internamente en un diccionario: la clase Tuple se ha introducido para uso general.
La diferencia entre Hashtable
y Dictionary
es que no es una Hashtable
de clase genérica tanto Es claves y valores son de tipo Object
. Dictionary
es genérico, y generalmente se debe utilizar a favor de Hashtable
en cualquier desarrollo nuevo.
posible duplicado de [¿Por qué diccionario se prefiere sobre tabla hash en C#?] (Http://stackoverflow.com/questions/301371/why-dictionary-is-preferred-over-hashtable-in-c) – Gabe