Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why doesn't THashedStringList ignore duplicates?

I have the following code:

var
  sl: THashedStringList;
begin
  sl:= THashedStringList.Create;
  sl.Duplicates := dupIgnore;
  sl.Add('12345');
  sl.Add('12345');
  sl.Add('12345');
  sl.Add('12345');
  sl.Add('12345');
  sl.Add('12345');
  sl.Add('12345');
  ShowMessage(IntToSTr(sl.Count));
end;

But when I see sl.Count, it gives me 7. What is the bug in this?

like image 907
fr21 Avatar asked Jun 30 '09 15:06

fr21


1 Answers

You need to set the Sorted property to TRUE in order to have the list ignore duplicates. The property is inherited from TStringList, and if you look at the documentation for TStringList.Duplicates you will find:

Note: Duplicates does nothing if the list is not sorted.

like image 56
mghie Avatar answered Sep 25 '22 10:09

mghie