[fpc-devel] Questions on TStringList.Find change (Mantis 28744)
    Denis Kozlov 
    dezlov at gmail.com
       
    Tue Mar 22 15:41:01 CET 2016
    
    
  
Find method must find an item in the list. Whether the list is sorted or
not, whether the binary search optimization can be applied or not - are
implementation details.
Find method should either:
1) Raise exception if list is not sorted,
2) Use IndexOf method if the list is not sorted (preferable).
Adding optional parameters is hardly a good solution. Instead, add a
FindSorted method.
To summarise:
procedure Find(const S: string; out Index: Integer):Boolean;
begin
  if Sorted then
    Result := FindSorted(S, Index);
  else
  begin
    Index := IndexOf(S);
    Result := (Index >= 0);
  end;
end;
procedure FindSorted(const S: string; out Index: Integer):Boolean;
begin
  if not Sorted then
    raise Exception.Create('List must be sorted');
  // search logic here...
end;
Denis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20160322/04a55444/attachment.html>
    
    
More information about the fpc-devel
mailing list