Bonjour,

Y a-t-il une autre méthode plus rapide pour ajouter des données dans une TStringList index sans doublons ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
PickList.Items.BeginUpdate;
while not ClientDataSet.Eof do
begin
  if ClientDataSet.Fields.FieldByName('MyCol').AsString <> EmptyStr then
  begin
    if ListBox.Items.IndexOf(ClientDataSet.Fields.FieldByName('MyCol').AsString) = -1 then
      ListBox.Items.Add(ClientDataSet.Fields.FieldByName('MyCol').AsString);
  end;
 
  Next;
end;
 
PickList.Items.EndUpdate;
J'ai testé avec une base de données qui contient 30000 données, le traitement prend pas mal de temps (~40 Secondes), sans le IndexOf ça prend ~2 secondes.

Merci