LinkedList逐一阅读

时间:2015-04-28 12:32:07

标签: delphi

我正在使用simplelinkedlist。在这里:(https://delphihaven.wordpress.com/2011/07/31/generic-linked-lists-redux/

我想逐一阅读所有列表。但我找不到任何选择。

这是我的代码:

function TKduCache.addJPIPResponseData(jRes: TJPIPResponse): Boolean;
var
  data : TJPIPDataSegment;
begin
  data:= jRes.readLinkedList;
  while (data <> nil) and (not data.isEOR) do
  begin
    addDataSegment(data);
    data:= jRes.readLinkedList
  end;
  Result:= jRes.isResponseComplete;
end;

readLinkedList方法:

function TJPIPResponse.removeJpipDataSegment: TJPIPDataSegment;
begin
  Result:= TJPIPDataSegment(jpipDataList.First.Value);
end;

SimpleLinkedList 可以读取;

  • jpipDataList.First.Value
  • jpipDataList.First.Next.Value
  • jpipDataList.First.Next.Next.Value

即可。 。

我应该如何创建我的算法来阅读?

1 个答案:

答案 0 :(得分:1)

您引用的链接列表有一个枚举器。所以你可以这样做:

var
  List: TSimpleLinkedList<Integer>;
  Item: Integer;
....
// create and populate List
for Item in List do
  DoSomething(Item);

或者,您可以使用经典的while循环迭代列表:

var
  List: TSimpleLinkedList<Integer>;
  Node: TSimpleLinkedList<Integer>.TNode;
....
// create and populate List
Node := List.First;
while Assigned(Node) do
begin
  DoSomething(Node.Value);
  Node := Node.Next;
end;