TStrings.Duplicates
| TStrings = class (TObject) | Interface de TStrings | Exemples 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)
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)