Ho un TDictionary comemodo corretto di smaltire TDictionary dopo classificare in un array
target_results : TDictionary<longint,double>;
Dopo popolato devo ordinare i risultati. Lo faccio in questo modo
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
));
Tutto funziona come previsto. La mia domanda è: come posso smaltire il TDictionary e il TArray senza perdite? Attualmente sto facendo solo
target_results.Free;
Non capisco perché usi un dizionario. Sembra che dovrebbe essere TList. –
@DavidHeffernan Sto facendo un sacco di domande per determinare il punteggio finale. Ogni query porta un insieme di punteggi sub-totali. Io uso TDictionary.AddOrSetValue per aggiungere una nuova voce o aggiungere il subtotale alla chiave esistente. Diresti che questa è la struttura più efficiente per adattarsi a questo? Grazie! –
Se si sta eseguendo la ricerca della chiave, un dizionario è buono. Certo, quell'aspetto non è nella Q, quindi la mia domanda. Ma sembra che tu abbia la giusta struttura dati. –