Implementing C#'s foreach loop in Delphi 8 | ||
| ||
| First, here's a simple sample C# code: 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; Here's the "same code" in Delphi: 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; | ||
| | ||
| |