2
0
Эх сурвалжийг харах

Add Contains() to lists and stringlist

Michaël Van Canneyt 23 цаг өмнө
parent
commit
ae0d1c3ae7

+ 4 - 0
rtl/objpas/classes/classesh.inc

@@ -535,6 +535,7 @@ Type
     function Extract(Item: Pointer): Pointer;
     function First: Pointer;
     function GetEnumerator: TFPListEnumerator;
+    function Contains(Item: Pointer): boolean;
     function IndexOf(Item: Pointer): Integer;
     function IndexOfItem(Item: Pointer; Direction: TDirection): Integer;
     procedure Insert(Index: Integer; Item: Pointer); {$ifdef CLASSESINLINE} inline; {$endif CLASSESINLINE}
@@ -618,6 +619,7 @@ Type
     function Extract(item: Pointer): Pointer;
     function First: Pointer; inline;
     function GetEnumerator: TListEnumerator;
+    function Contains(Item: Pointer): boolean;
     function IndexOf(Item: Pointer): Integer; inline;
     procedure Insert(Index: Integer; Item: Pointer);
     function Last: Pointer; inline;
@@ -1020,8 +1022,10 @@ type
     function GetEnumerator: TStringsEnumerator;
     procedure GetNameValue(Index : Integer; Out AName,AValue : String);
     function GetText: PChar; virtual;
+    function Contains(const S: string): Boolean; 
     function IndexOf(const S: string): Integer; virtual;
     function IndexOf(const S: string; aStart : Integer): Integer; virtual;
+    function ContainsName(const Name: string): Boolean; virtual;
     function IndexOfName(const Name: string): Integer; virtual;
     function IndexOfObject(AObject: TObject): Integer; virtual;
     procedure Insert(Index: Integer; const S: string); virtual; abstract;

+ 12 - 0
rtl/objpas/classes/lists.inc

@@ -209,6 +209,11 @@ begin
   Result := TFPListEnumerator.Create(Self);
 end;
 
+function TFPList.Contains(Item: Pointer): Boolean;
+begin
+  Result:=IndexOf(Item)<>-1;
+end;
+
 function TFPList.IndexOf(Item: Pointer): Integer;
 
 begin
@@ -745,6 +750,13 @@ begin
   Result := TListEnumerator.Create(Self);
 end;
 
+function TList.Contains(Item: Pointer): Boolean;
+begin
+  Result:=Flist.Contains(Item);
+end;
+
+
+
 function TList.IndexOf(Item: Pointer): Integer;
 begin
   Result := FList.IndexOf(Item);

+ 12 - 0
rtl/objpas/classes/stringl.inc

@@ -1299,6 +1299,12 @@ Function TStrings.DoCompareText(const s1,s2 : string) : PtrInt;
   end;
 
 
+Function TStrings.Contains(const S: string): Boolean;
+
+begin
+  Result:=Indexof(S)<>-1;
+end;
+
 Function TStrings.IndexOf(const S: string): Integer;
 begin
   Result:=0;
@@ -1319,6 +1325,12 @@ begin
   if Result=Count then Result:=-1;
 end;
 
+Function TStrings.ContainsName(const Name: string): Boolean;
+
+begin
+  Result:=IndexOfName(Name)<>-1;
+end;
+
 
 Function TStrings.IndexOfName(const Name: string): Integer;
 Var