TStrings.Duplicates

redirigé depuis TStrings.SetDuplicates

TStrings = class (TObject)Interface de TStringsExemples de TStrings

Spécifie la gestion de l'ajout de doublons dans une liste triée

Syntaxe

property Duplicates: TStringsDuplicates read GetDuplicates write SetDuplicates

Remarques

  • Affecter une valeur (parmi TStringsDuplicates) à la propriété Duplicates pour spécifier comment la liste réagit à l'ajout d'une chaîne dupliquée dans une liste triée (Sorted).
  • Par défaut, Duplicates vaut dupAccept (les doublons sont acceptés).
  • Définir Duplicates avant d'ajouter des chaînes à la liste : l'initialisation de Duplicates à dupIgnore ou à dupError n'a aucun effet sur les chaînes en double déjà présentes dans la liste.
  • La propriété CaseSensitive détermine si deux chaînes sont considérées comme dupliquées lorsqu'elles ne diffèrent que par la casse.
  • Duplicates n'a aucun effet si la liste n'est pas triée.
  • La complexité de cette vérification étant de O(n²), si le besoin est juste d'avoir une liste de chaine uniques, il est peut-être préférable d'utiliser un Tableau Associatif dont la complexité sera inférieure.

Exemples

var liste := TStrings.Create;
liste.Commatext := 'paul,pierre,jacques';

liste.Sorted:=True;
liste.Add('paul'); // La liste est maintenant 'jacques,paul,paul,pierre'(Duplicates vaut dupAccept par défaut : doublons acceptés)
liste.Duplicates:= dupIgnore;
liste.Add('pierre'); // La liste vaut toujours 'jacques,paul,paul,pierre'(les nouveaux doublons sont maintenant ignorés)
liste.Duplicates:= dupError;
liste.Add('jacques'); // Une erreur est déclenchée (les nouveaux doublons sont interdits)

Classification

SysUtils TStrings