Delphi for..in boucle d'énumération ordre

Je veux itérer sur un ensemble de valeurs spécifiques. Exemple Simple ci-dessous

program Project1;
{$APPTYPE CONSOLE}

var
  a, b: word;
  wait: string;

begin
  a := 0;
  for b in [1,5,10,20] do
  begin
    a := a + 1;
    writeln('Iteration = ', a, ',   value = ', b);
  end;

  read(wait); 

end.

L'exemple de code fait ici, ce que j'attends et produit suivantes

Itération = 1, valeur = 1

Itération = 2, valeur = 5

Itération = 3, valeur = 10

Itération = 4, valeur = 20

Maintenant si je change l'ordre de l'ensemble

  for b in [20,10,5,1] do

La sortie est le même que l'original, qui est l'ordre des valeurs n'est pas conservé.

Quelle est la meilleure façon de mettre en œuvre cette?

source d'informationauteur HMcG