问题
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