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 .
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 .