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
Vous devez vous connecter pour publier un commentaire.
Ensembles ne sont pas classées dans les conteneurs. Vous ne pouvez pas modifier l'ordre d'un ensemble de contenu. Un pour-en boucle toujours parcourt ensembles dans l'ordre numérique.
Si vous avez besoin d'une liste ordonnée de nombres, alors vous pouvez utiliser un tableau ou
TList<Integer>
.Vous pouvez déclarer une constante tableau au lieu d'une constante définie.
En mathématiques, un ensemble n'ont aucun ordre particulier.
En pascal, un jeu est un
bitmap
dans la mémoire de la représentation des éléments présents dans le jeu (au sein d'un univers de possibles éléments définis par le type de base).Il n'y a aucun moyen que vous pouvez "modifier" de la commande d'un ensemble, car il est, par définition, pas de sens pour lui.
Que le dans la mémoire de la représentation par pascal, le jeu est toujours répétées "de l'ordre".