Delphi for..in循环集枚举顺序

前端之家收集整理的这篇文章主要介绍了Delphi for..in循环集枚举顺序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想迭代一组特定的值.下面简单的例子
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.

这里的示例代码是我期望的,并产生以下内容

迭代= 1,值= 1

迭代= 2,值= 5

迭代= 3,值= 10

迭代= 4,值= 20

现在如果我改变集合的顺序

for b in [20,1] do

输出与原始输出相同,即不保留值的顺序.

实现这一点的最好方法是什么?

解决方法

集合不是订购的容器.您不能更改集合内容的顺序. for-in循环总是以数字顺序迭代集合.

如果您需要一个有序的数字列表,则可以使用数组或TList< Integer>.

var
  numbers: array of Word;
begin
  SetLength(numbers,4);
  numbers[0] := 20;
  numbers[1] := 10;
  numbers[2] := 5;
  numbers[3] := 1;
  for b in numbers do begin
    Inc(a);
    Writeln('Iteration = ',b);
  end;
end.

猜你在找的Delphi相关文章