程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 詳測 Generics Collections TList (9): BinarySearch

詳測 Generics Collections TList (9): BinarySearch

編輯:Delphi

unit Unit1; 
 
interface 
 
uses 
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 Dialogs, StdCtrls; 
 
type 
 TForm1 = class(TForm) 
  Button1: TButton; 
  procedure Button1Click(Sender: TObject); 
 end; 
 
var 
 Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
uses Generics.Collections, Generics.Defaults; 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
 List: TList<string>; 
 num: Integer; 
 b: Boolean; 
 Comparer: IComparer<string>; 
begin 
 List := TList<string>.Create(); 
 List.AddRange(['123', 'ABB', 'ABC']); 
 
 {默認的查找需要完全吻合才能找到} 
 if List.BinarySearch('ABC', num) then ShowMessage(IntToStr(num)); {2} 
 
 {這裡自定義個對比器, 只要第一個字符吻合就算找到了} 
 Comparer := TComparer<string>.Construct( 
  function(const s1,s2: string): Integer 
  begin 
   Result := Ord(s1[1]) - Ord(s2[1]); 
  end); 
 
 if List.BinarySearch('ABC', num, Comparer) then ShowMessage(IntToStr(num)); {1} 
    
 List.Free; 
end; 
 
end. 
 
string>


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved