Я хочу выполнить итерацию по набору определенных значений. Простой пример нижеDelphi for..in loop set enumeration order
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.
образец кода здесь делает то, что я ожидал и производит следующее
Iteration = 1, значение = 1
итерация = 2, значение = 5
итерация = 3, значение = 10
Итерация = 4, значение = 20
Теперь, если я изменить порядок набора
for b in [20,10,5,1] do
Выход такой же, как оригинал, то есть порядок значений не сохраняется.
Каков наилучший способ реализации этого?
например. 'для b в TIntegerDynArray.Create (20,10,5,1) do' –
Спасибо за ответ. Существует ли менее длинный способ создания упорядоченных значений массива? И комментарий выше отвечает на это тоже. Иногда StackOverflow слишком быстр :-) – HMcG
Синтаксис динамического массива-конструктора, который демонстрирует Дэвид, новее, чем цикл for-in. Есть некоторые версии Delphi, которые могут использовать последний, но не первый, и если вы используете один из них, то вы не можете многое сделать. Вы могли бы написать свою собственную функцию, которая преобразует открытый массив в динамический массив. –