十七、详测 Generics Collections TList (8): Sort

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
<Integer>;
  i: Integer;
  str: 
string;
begin
  List :
= TList<Integer>.Create();
  List.AddRange([
22,33,11]);

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

  
{排序}
  List.Sort;
  str :
= '';
  
for i in List do str := str + IntToStr(i) + ' '
  ShowMessage(str); 
{11 22 33 }

  
{倒排序}
  List.Sort(TComparer
<Integer>.Construct(
    
function (const n1,n2: Integer): Integer
    
begin
      Result :
= n2 - n1;
    
end));

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

  List.Free;
end;

end.
原文地址:https://www.cnblogs.com/jxgxy/p/1596522.html