delphi – 在将TDictionary排序成数组后处理TDictionary的正确方法

delphi – 在将TDictionary排序成数组后处理TDictionary的正确方法,第1张

概述我有像TDictionary这样的 target_results : TDictionary<longint,double>; 填充后我需要对结果进行排序.我是这样做的 type TSearchResult = TPair<longint,double>;var target_results_array : TArray<TSearchResult>;target_results_a 我有像TDictionary这样的

target_results : TDictionary<longint,double>;

填充后我需要对结果进行排序.我是这样做的

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                    ));

这一切都按预期工作.我的问题是如何在没有任何泄漏的情况下处理TDictionary和TArray?目前我正在做

target_results.Free;
解决方法 由于您的数据是longint和double,两者都是值类型,因此释放字典将正常工作.您的数组将包含原始值的副本,您无需担心丢失或损坏任何内容.

如果您有对象类型,并且您拥有一个拥有对象的TObjectDictionary,那么您必须担心这类事情,但对于纯数字数据,您没问题.

总结

以上是内存溢出为你收集整理的delphi – 在将TDictionary排序成数组后处理TDictionary的正确方法全部内容,希望文章能够帮你解决delphi – 在将TDictionary排序成数组后处理TDictionary的正确方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1263780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存