tôi có thể sắp xếp ConcurrentDictionary của tôi bằng giá trị như vậy:Sắp xếp một ConcurrentDictionary bởi Value
static ConcurrentDictionary<string, Proxy> Proxies =
new ConcurrentDictionary<string, Proxy>();
Proxies.OrderBy(p => p.Value.Speed);
Mà là tuyệt vời, ngoại trừ tôi muốn thiết lập đó mới danh sách tái ra lệnh AS từ điển, hiệu quả sắp xếp các từ điển chính nó hơn là chỉ nhận được một danh sách kết quả của các mục được sắp xếp.
tôi cố gắng làm một cái gì đó như thế này nhưng không có may mắn - từ điển là vẫn có thứ tự sau:
Proxies = new ConcurrentDictionary<string,Proxy>(
Proxies.OrderBy(p => p.Value.Speed));
Nó có vẻ như làm điều đó không có hiệu lực thi hành từ điển. Tôi cũng đã thử đúc kết quả OrderBy vào một var mới nghĩ rằng nó có thể có ảnh hưởng đến đại biểu nhưng vẫn không có may mắn.
Tôi làm cách nào để sắp xếp lại ConcurrentDictionary này và sau đó buộc từ điển trở thành kết quả được sắp xếp lại từ OrderBy?
Nếu bạn cần các thuộc tính truy cập nhanh chóng của một cuốn từ điển, kết hợp với thread-an toàn và sắp xếp liên tục, bạn cần một cái gì đó như một cây B đồng thời. Tôi không tin có sẵn trong .NET. Có lẽ bên thứ ba? Bất kỳ cơ hội bạn chỉ có thể sử dụng OrderBy() khi bạn cần kết quả? – Timo