3ENGINE

Programación y otros cachivaches

Tecnologia

Delphi: cómo ordenar un array dinámico (Dynamic array)

Para ordenar un array dinámico (de tipo Array of…) no hay ningun método específico.

Cómo ordenar un array dinámico

Pego un ejemplo muy básico que ordena un array dinámico de tipo Array of THuman donde THuman es una clase con dos atributos. El código hace uso de un TStringList auxiliar y un método sort() para ordenar el array dinámico.

Type
  THuman = Class
  Public
    Name: String;
    Age: Byte;
    Constructor Create(Name: String; Age: Integer);
  End;

Constructor THuman.Create(Name: String; Age: Integer);
Begin
  Self.Name:= Name;
  Self.Age:= Age;
End;

Var
 Human: THuman;
 Humans: Array Of THuman;
 List: TStringList;
Begin

 SetLength(Humans, 3);
 Humans[0]:= THuman.Create('David', 41);
 Humans[1]:= THuman.Create('Brian', 50);
 Humans[2]:= THuman.Create('Alex', 20);

 List:= TStringList.Create;
 List.AddObject(Humans[0].Name, TObject(Humans[0]));
 List.AddObject(Humans[1].Name, TObject(Humans[1]));
 List.AddObject(Humans[2].Name, TObject(Humans[2]));
 List.Sort;

 Human:= THuman(List.Objects[0]);
 Showmessage('The first person on the list is the human ' + Human.name + '!');

 List.Free;
End.

2 Comentarios

  1. Andreu

    Este código puede quedar mas elegante.

    • lite.3engine

      Hola Andreu, gracias por participar.
      Se trata de un ejemplo simple. Un código de partida para implementar tu propio código.
      Igualmente, cualquier mejora es bienvenida, adjuntandola a este hilo.

No se admiten más comentarios