微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/delphi/101466.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐