jestem w stanie rozwiązać mój ConcurrentDictionary wartością tak:Sortowanie ConcurrentDictionary przez wartość
static ConcurrentDictionary<string, Proxy> Proxies =
new ConcurrentDictionary<string, Proxy>();
Proxies.OrderBy(p => p.Value.Speed);
Które jest super, z wyjątkiem chcę ustawić tę nową listę ponownego zamawiać słownika, skutecznie sortowania słownika zamiast odbierać listę wyników posortowanych przedmiotów.
staram się zrobić coś takiego, ale nie miał szczęścia - słownik jest nadal nieuporządkowana po:
Proxies = new ConcurrentDictionary<string,Proxy>(
Proxies.OrderBy(p => p.Value.Speed));
Wydaje się, że robi to nie ma wpływu na słownika. Próbowałem też rzucić wynik OrderBy na nowy var, myśląc, że może to mieć wpływ na delegata, ale wciąż nie ma szczęścia.
Jak mogę zmienić kolejność tego ConcurrentDictionary, a następnie wymusić, aby słownik był ponownie zamówionym wynikiem z OrderBy?
Jeśli potrzebujesz szybkich właściwości dostępu słownika, w połączeniu z wątku bezpieczeństwa i ciągłego sortowania, trzeba coś takiego współbieżne drzewo B. Nie wierzę, że jest jeden dostępny w .NET. Być może trzecia strona? Czy jest szansa, że po prostu użyjesz funkcji OrderBy(), gdy potrzebujesz wyników? – Timo