Implemente o FOREACH em DELPHI.NET
Em C# a declaração de foreach repete um grupo de declarações embutidas para cada elemento em uma ordem ou uma coleção de objeto. Delphi for NET não tem um eqivalente da declaração de foreach. Vejamos como codificar uma declaração de foreach em Delphi.
Primeiro, aqui é uma amostra simples do foreach no C#:
foreach (TMyObject myObject in AnArrayList) {
AnIntValue = MyObject.MyValue;
}
Where TMyObject class is declared as:
TMyObject = Class(TObject)
public
MyField : integer;
constructor Create(AValue:integer) ;
end;
constructor TMyObject.Create(AValue: integer) ;
begin
inherited Create;
MyField := AValue;
end;
Aqui é o " mesmo código " em Delphi for NET:
var
MyObject : TMyObject;
AnArrayList : ArrayList;
Enum: IEnumerator;
j:integer;
begin
AnArrayList := ArrayList.Create;
AnArrayList.Add(TMyObject.Create(2004)) ;
AnArrayList.Add(TMyObject.Create(1973)) ;
AnArrayList.Add(TMyObject.Create(2000)) ;
AnArrayList.Add(TMyObject.Create(1998)) ;
//FOR EACH
Enum := AnArrayList.GetEnumerator;
while Enum.MoveNext do
begin
MyObject := TMyObject(Enum.Current) ;
Response.Write(MyObject.MyField.ToString + <br>) ;
end;
// OR USING ITERATION
for j:= 0 to -1 + AnArrayList.Count do
begin
MyObject := TMyObject(AnArrayList[j]) ;
Response.Write(MyObject.MyField.ToString + <br>) ;
end;