问题
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?
回答1:
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.
来源:https://stackoverflow.com/questions/1064446/why-doesnt-thashedstringlist-ignore-duplicates