Welcome to the new DelphiDabbler Code Library Documentation.

This is a new site that's currently running on alpha code. There are going to be bugs. If you discover any, please report them on the site's issues page (GitHub account required). Thanks.

Warning: Many URLs are going to change. Refer to the README file to discover which library project's documentation has been completed.

Contains<T> class method

Project: Array Utilities Unit

Unit: DelphiDabbler.Lib.ArrayUtils

Record: TArrayUtils

Applies to: ~>0.1

class function Contains<T>(const AItem: T; const A: array of T;
  const AEqualityComparer: TEqualityComparison<T>): Boolean;
  overload; static;

class function Contains<T>(const AItem: T; const A: array of T;
  const AEqualityComparer: IEqualityComparer<T>): Boolean;
  overload; static;

class function Contains<T>(const AItem: T; const A: array of T): Boolean;
  overload; static;

Description

Checks if an array contains at least one element that tests equal to a given value.

Parameters:

Returns:

Examples

Example #1

Using an equality comparer function:

procedure Contains_Eg1;
var
  A: TArray<Integer>;
  EqComparerFn: TEqualityComparison<Integer>;
begin
  A := TArray<Integer>.Create(1, 2, 3);
  EqComparerFn := function(const Left, Right: Integer): Boolean
    begin
      Result := Left = Right;
    end;
  Assert(TArrayUtils.Contains<Integer>(2, A, EqComparerFn) = True);
  Assert(TArrayUtils.Contains<Integer>(4, A, EqComparerFn) = False);
end;

Example #2

Using an equality comparer object:

procedure Contains_Eg2;
var
  A: TArray<string>;
  EqComparerObj: IEqualityComparer<string>;
begin
  A := TArray<string>.Create('a', 'b', 'c');
  EqComparerObj := TDelegatedEqualityComparer<string>.Create(
    SameStr,
    function(const Value: string): Integer
    begin
      // only do this if you KNOW the hash function won't be called
      Result := 0;
    end
  );
  Assert(TArrayUtils.Contains<string>('b', A, EqComparerObj) = True);
  Assert(TArrayUtils.Contains<string>('d', A, EqComparerObj) = False);
end;

See Also