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.
Project: Array Utilities Unit
Unit: DelphiDabbler.Lib.ArrayUtils
Record: TArrayUtils
Applies to: ~>0.1
class function Min<T>(const A: array of T;
const AComparer: TComparison<T>): T;
overload; static;
class function Min<T>(const A: array of T;
const AComparer: IComparer<T>): T;
overload; static;
class function Min<T>(const A: array of T): T;
overload; static;
Finds the minimum value of a non empty array.
Parameters:
A - The array to be examined.
AComparer - An optional function or object that can be used to compare two values. Used to compare the elements of the arrays to each other.
If AComparer is provided it must be one of:
If this parameter is omitted then the default comparer defined by the TComparer<T>.Default method from the Delphi’s System.Generics.Defaults unit is used.
Returns:
Precondition:
Using an equality comparer function:
procedure Min_Eg1;
var
A: TArray<Integer>;
ComparerFn: TComparison<Integer>;
begin
A := TArray<Integer>.Create(1, 2, 3, 4, 2, 3, 2);
ComparerFn := function(const Left, Right: Integer): Integer
begin
Result := Left - Right;
end;
Assert(TArrayUtils.Min<Integer>(A, ComparerFn) = 1);
end;
Using an equality comparer object:
procedure Min_Eg2;
var
A: TArray<string>;
ComparerObj: IComparer<string>;
begin
A := TArray<string>.Create('a', 'b', 'c', 'd', 'c', 'a');
ComparerObj := TDelegatedComparer<string>.Create(CompareStr);
Assert(TArrayUtils.Min<string>(A, ComparerObj) = 'a');
end;