Veo muchas preguntas/respuestas sobre cómo convertir una Hashtable a un diccionario, pero ¿cómo puedo convertir un diccionario a una Hashtable?Cómo convertir Diccionario <> a Hashtable en C#?
Respuesta
La forma más fácil es usar constructor de Hashtable:
var dictionary = new Dictionary<object, object>();
//... fill the dictionary
var hashtable = new Hashtable(dictionary);
parece bastante raro que querer hacerlo, pero a la más simple:
var hash = new Hashtable();
foreach(var pair in dictionary) {
hash.Add(pair.Key,pair.Value);
}
(suponiendo que no haya inusuales "implementos mecanografiado comprobación de igualdad, pero no la igualdad sin tipo de verificación", etc)
Ahora solo incluye esto en un método de extensión 'ToHashTable' y ¡listo! – Dismissile
Incluso hay un [constructor] (http://msdn.microsoft.com/en-us/library/kdkta2sx.aspx) que hace lo mismo. – Joey
Esto es lo que estaba pensando hacer. Me preguntaba si había una forma no tan obvia de hacerlo. Sin embargo, ¡gracias! – jpints14
Dictionary<int, string> dictionary = new Dictionary<int, string>
{
{1,"One"},
{2,"Two"}
};
Hashtable hashtable = new Hashtable(dictionary);
Prueba esto
Es posible que desee considerar el uso de la sobrecarga Hashtable
constructor que toma un parámetro IEqualityComparer
:
var hashtable = new Hashtable(dictionary, (IEqualityComparer) dictionary.Comparer);
De esta manera, su tabla hash utiliza el mismo Comparer
como el diccionario. Por ejemplo, si su diccionario utilizó una clave de cadena que no distingue entre mayúsculas y minúsculas, es posible que desee que su Hashtable
también distinga entre mayúsculas y minúsculas. P. ej .:
var d = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
d.Add("a", "a");
d.Add("b", "b");
bool found;
found = d.ContainsKey("A"); // true
var hashtable1 = new Hashtable(d);
var hashtable2 = new Hashtable(d, (IEqualityComparer) d.Comparer);
found = hashtable1["A"] != null; // false - by default it's case-sensitive
found = hashtable2["A"] != null; // true - uses same comparer as the original dictionary
- 1. Convertir diccionario a List <KeyValuePair>
- 2. convertir HashTable a Dictionary en C#
- 3. cómo convertir Diccionario <dinámico, dinámico> a Diccionario <cadena, cadena> usando Colllection.ToDictionary()
- 4. C# linq en el diccionario <>
- 5. Convertir diccionario <cadena, objeto> ¿A objeto anónimo?
- 6. ¿Convertir Diccionario <String,Int> al Diccionario <String, SomeEnum> using LINQ?
- 7. Convertir la lista <MyObject> al Diccionario <obj.string, Lista <obj.ID>>
- 8. Cómo convertir [TYPE] a nulable <[TYPE]> en C#?
- 9. Convertir diccionario <MyType> .ValueCollection a IList <MyType>
- 10. Hashtable to Dictionary <> syncroot.
- 11. ¿Cómo puedo convertir IEnumerable <T> en la lista <T> en C#?
- 12. Cómo convertir Dictionary <string, object> a Dictionary <string, string> en C#
- 13. Cómo convertir Lista <string> a ReadOnlyCollection <string> en C#
- 14. C# Expandir lista plana <T> al diccionario <T, ICollection <int>>
- 15. convertir IQueryable <int> a <int>
- 16. C# Cómo convertir una expresión <Func <SomeType>> en una expresión <Func <OtherType>>
- 17. 'Convertir' Diccionario <string,int> en la Lista <object>
- 18. convertir un IOrderedEnumerable <KeyValuePair <string, int>> en un diccionario <string, int>
- 19. Diferencia entre diccionario y Hashtable
- 20. Cómo convertir un IEnumerable <IEnumerable <T>> a un IEnumerable <T>
- 21. Cómo convertir Expr <'a -> 'b> para la expresión <Func <'a, obj>>
- 22. Convertir <Enum> a la lista <string>
- 23. C# Convertir una acción a otra <bool>
- 24. cómo convertir ListItemCollection (dropdownlist.items) a un diccionario <string, string>?
- 25. Guardar un diccionario <String, Int32> en C# - ¿Serialización?
- 26. Cómo convertir clases en Dictionary <string, string>?
- 27. C# Convert List <string> a Dictionary <string, string>
- 28. C# No se puede convertir de IEnumerable <Base> a IEnumerable <Derived>
- 29. ¿cuál es la diferencia entre la lista <> y el diccionario <> en C#
- 30. Convertir IEnumerable <T> a string []
¿Y por qué necesitarías eso? Un Hashtable es muy específico porque un valor calculado en la clave produce la ubicación del valor ... y un diccionario es simplemente una colección recta (clave, valor). ¿Por qué querrías convertir un diccionario a una tabla hash? –
En el nivel más simple, soy flojo. El objeto que es de tipo 'Hashtable' se usa en muchos lugares. – jpints14
Eso en sí mismo no es una razón para usarlo. Diccionarios y Hashtables son bestias diferentes que se usan bajo diferentes circunstancias. Ya sabes, una lista también se usa en muchos lugares ... ¿Por qué no usar eso? : -s –