二十、详测 Generics Collections TList (11): Create

unit  Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 
=   class (TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    
procedure  Button1Click(Sender: TObject);
    
procedure  Button2Click(Sender: TObject);
    
procedure  Button3Click(Sender: TObject);
  
end ;

var
  Form1: TForm1;

implementation

{ $R *.dfm }

uses  Generics.Collections, Generics.Defaults;

var
  i: Integer;
  str: 
string ;

// 无参数的建立
procedure  TForm1.Button1Click(Sender: TObject);
var
  List: TList
< Integer > ;
begin
  List :
=  TList < Integer > .Create();

  List.AddRange([
11 , 22 , 33 ]);
  str :
=   '' ;
  
for  i  in  List  do  str : =  str  +  IntToStr(i)  +   '   ' ;
  ShowMessage(str); 
{ 11 22 33  }

  List.Free;
end ;

// 可以基于另一个列表建立
procedure  TForm1.Button2Click(Sender: TObject);
var
  List,ListTmp: TList
< Integer > ;
begin
  ListTmp :
=  TList < Integer > .Create();
  ListTmp.AddRange([
1 2 3 ]);

  List :
=  TList < Integer > .Create(ListTmp);

  str :
=   '' ;
  
for  i  in  List  do  str : =  str  +  IntToStr(i)  +   '   ' ;
  ShowMessage(str); 
{ 1 2 3  }

  ListTmp.Free;
  List.Free;
end ;

// 可在建立时同时指定排序器
procedure  TForm1.Button3Click(Sender: TObject);
var
  List: TList
< Integer > ;
  Comparer: IComparer
< Integer > ;
begin
  
{ 建立排序器 }
  Comparer :
=  TComparer < Integer > .Construct(
    
function ( const  n1,n2: Integer): Integer
    
begin
      Result :
=  n2  -  n1;
    
end
  );

  List :
=  TList < Integer > .Create(Comparer);
  List.AddRange([
2 3 1 ]);

  List.Sort; 
{ 会根据建立时指定的排序器排序 }

  str :
=   '' ;
  
for  i  in  List  do  str : =  str  +  IntToStr(i)  +   '   ' ;
  ShowMessage(str); 
{ 3 2 1  }

  List.Free;
end ;

end .

转载于:https://www.cnblogs.com/jxgxy/archive/2009/11/05/1596531.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值