我有一個TDictionary。它充滿了廣泛的循環。當循環完成時,我需要獲得更多分數(整數)的10個鍵(字符串)。什麼是最有效的方法來完成這個?迭代泛型集合自上而下(TDictionary)
在Objective-C(可可)我用做:
NSArray *top_words_sorted_array = [top_words_dictionary keysSortedByValueUsingSelector:@selector(compare:)];
,然後重複所述新排序後的數組。我怎樣才能在Delphi中做到這一點?
謝謝大衛!它和原始的Obj-C代碼一樣高效。字典會變大,但這種代碼使用並不經常。 – 2012-04-26 15:51:34
如果字典真的很大,那麼您可能不想對整個值列表進行排序。你只需要一個*部分排序*。參見[選擇k最小或最大元素](http://en.wikipedia.org/wiki/Selection_algorithm#Selecting_k_smallest_or_largest_elements)下維基百科中的*選擇算法*條目 – 2012-04-26 17:57:57
從何時起,TArray有一個Sort方法? –
2012-04-26 22:34:40