有以下枚舉:集合類型是否適合循環迭代?
TDays = (tdSunday, tdMonday, tdTuesday, tdWednesday, tdThursday, tdFriday, tdSaturday);
而下面的組枚舉:
TChoosenDays = set of TDays;
現在,定義以下數組:
var
ArrayStringDaysAcronym : array [TDays] of String = ('SD', 'MD', 'TU', 'WE', 'TH', 'FR', 'ST');
假設我已經聲明爲一個變量:
var
Foo: TChoosenDays;
begin
Foo:= [tdSunday, tdMonday, tdTuesday];
如何迭代集合中的所有成員?
注:以下不編譯,我知道我可以使用數組而不是「set」,是唯一的方法嗎?
function ConcatAcronyms: String;
var
Item: TDays;
begin
Result:= '';
for Item:= Low(Foo) to High(Foo) do
begin
Result:= Result + '; '+ ArrayStringDaysAcronym[Item];
end;
end;
我不確定關於Delphi 6,但在現代版本中,循環有可能以這種方式:var D:TDay;在Foo開始D開始SmFnc(D)... end;結束;' –
@ asd-tm謝謝,但我被困在這個舊版本 – EProgrammerNotFound
@ asd-tm:自從Pascal第一次定義iirc以來,「if元素in []」構造已經存在。爲什麼是Wirth。 – MartynA