Tôi có một TDictionary nhưcách chính xác để xử lý TDictionary sau khi sắp xếp chúng thành một mảng
target_results : TDictionary<longint,double>;
Sau Populating nó tôi cần phải sắp xếp kết quả. Tôi đang làm như thế này
type
TSearchResult = TPair<longint,double>;
var
target_results_array : TArray<TSearchResult>;
target_results_array:= target_results.ToArray;
TArray.Sort<TSearchResult>(best_knowledge_search_results,
TComparer<TSearchResult>.Construct(
function(const L, R: TSearchResult): Integer
begin
if L.Value < R.Value then Result := 1 else if L.Value > R.Value then Result := -1 else Result := 0;
end
));
Tất cả đều hoạt động như mong đợi. Câu hỏi của tôi là làm thế nào để loại bỏ TDictionary và TArray mà không có bất kỳ rò rỉ nào? Hiện tại tôi chỉ đang thực hiện
target_results.Free;
Tôi không hiểu tại sao bạn sử dụng từ điển. Điều này có vẻ như nó phải là TList. –
@DavidHeffernan Tôi đang thực hiện một loạt các truy vấn để xác định điểm số cuối cùng. Mỗi truy vấn mang đến một tập hợp các điểm tổng phụ. Tôi sử dụng TDictionary.AddOrSetValue để thêm một mục mới hoặc thêm tổng phụ vào khóa hiện có. Bạn có nói đây là cấu trúc hiệu quả nhất để phù hợp với điều này không? Cảm ơn! –
Nếu bạn đang thực hiện tra cứu chính thì từ điển sẽ tốt. Tất nhiên, khía cạnh đó không có trong Q, do đó truy vấn của tôi. Nhưng có vẻ như bạn đã có cấu trúc dữ liệu đúng. –