2009-06-30 7 views
7

私は次のコードを持っている:なぜTHashedStringListは重複を無視しないのですか?

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; 

をしかし、私はsl.Countを見ると、それは7本のバグとは何である私に与えますか?

答えて

15

リストが重複を無視するようにするには、SortedプロパティをTRUEに設定する必要があります。プロパティは、TStringListから継承され、そしてあなたがTStringList.Duplicatesのドキュメントを見れば、あなたは見つける:

注:リストがソートされていない場合重複は何もしません。

+4

THashedStringListは、DuplicatesプロパティをTStringListから継承し、Addメソッドの動作も継承するからです。このPavanの例では、THashedStringListに特別なことは何もありません。 –

+0

コメントのおかげで、私はそれに応じて答えを編集しました。 – mghie

+0

申し訳ありませんが、間違ったミス。 – Pavan

関連する問題