que obtener leer imprimir ejemplos diccionario consultar buscar acceder c# .net dictionary concurrentdictionary

leer - obtener key de un diccionario c#



¿Cómo puedo convertir un diccionario concurrente a un diccionario? (4)

¿Por qué necesitas convertirlo en un Diccionario? ConcurrentDictionary<K, V> implementa la IDictionary<K, V> , ¿no es eso suficiente?

Si realmente necesita un Dictionary<K, V> , puede copiarlo usando LINQ:

var myDictionary = myConcurrentDictionary.ToDictionary(entry => entry.Key, entry => entry.Value);

Tenga en cuenta que esto hace una copia . No puede simplemente asignar un ConcurrentDictionary a un diccionario, ya que ConcurrentDictionary no es un subtipo de diccionario. Ese es el punto central de las interfaces como IDictionary: puede abstraer la interfaz deseada ("algún tipo de diccionario") de la implementación concreta (hashmap concurrente / no concurrente).

Tengo un objeto ConcurrentDictionary que me gustaría establecer en un objeto Diccionario.

Casting entre ellos no está permitido. Entonces, ¿cómo lo hago?


Creo que he encontrado una manera de hacerlo.

ConcurrentDictionary<int, int> concDict= new ConcurrentDictionary<int, int>( ); Dictionary dict= new Dictionary<int, int>( concDict);


La clase ConcurrentDictionary<K,V> implementa la IDictionary<K,V> , que debería ser suficiente para la mayoría de los requisitos. Pero si realmente necesitas un Dictionary<K,V> concreto Dictionary<K,V> ...

var newDictionary = yourConcurrentDictionary.ToDictionary(kvp => kvp.Key, kvp => kvp.Value, yourConcurrentDictionary.Comparer); // or... // substitute your actual key and value types in place of TKey and TValue var newDictionary = new Dictionary<TKey, TValue>(yourConcurrentDictionary, yourConcurrentDictionary.Comparer);


ConcurrentDictionary<int, string> cd = new ConcurrentDictionary<int, string>(); Dictionary<int,string> d = cd.ToDictionary(pair => pair.Key, pair => pair.Value);