soy capaz de ordenar mi ConcurrentDictionary por el valor de este modo:Ordenar una ConcurrentDictionary por valor
static ConcurrentDictionary<string, Proxy> Proxies =
new ConcurrentDictionary<string, Proxy>();
Proxies.OrderBy(p => p.Value.Speed);
cual es genial, excepto que quiero establecer que la nueva lista reordenada como el diccionario, la clasificación de manera efectiva el diccionario en vez de solo recibir una lista de resultados de los artículos clasificados.
trato de hacer algo como esto, pero no tuvo suerte - el diccionario sigue siendo desordenada después:
Proxies = new ConcurrentDictionary<string,Proxy>(
Proxies.OrderBy(p => p.Value.Speed));
Parece como hacer que no tiene ningún efecto en el diccionario. También intenté enviar el resultado de OrderBy a una nueva var pensando que podría tener un efecto en el delegado, pero aún no tuvo suerte.
¿Cómo puedo volver a solicitar este ConcurrentDictionary y luego forzar que el diccionario sea el resultado reordenado de OrderBy?
Si necesita las propiedades de acceso rápido de un diccionario, combinada con hilos de seguridad y clasificación continua, necesita algo así como un árbol B concurrente. No creo que haya uno disponible en .NET. ¿Quizás tercero? ¿Alguna posibilidad de que simplemente use OrderBy() cuando necesite los resultados? – Timo