PureBasic
;
; ------------------------------------------------------------
;
;   PureBasic - Linked list example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;

Structure BasicStructure 
    Field1.b
    Field2.w
    Field3.l
EndStructure

Structure ComplexStructure
    Field1.b
   *Basic.BasicStructure              ; Указатель на объект BasicStructure
    Basic2.BasicStructure             ; Создание объекта BasicStructure внутри этой структуры
   *Next.ComplexStructure             ; Указатель на другой объект ComplexStructure
EndStructure

NewList TestList.BasicStructure()

;
;-------- Добавить элементы в TestLists --------
;

AddElement(TestList())
TestList()\Field2 = 1

AddElement(TestList())
TestList()\Field2 = 2

AddElement(TestList())
TestList()\Field2 = 3

AddElement(TestList())
TestList()\Field2 = 4

Debug "Количество элементов в списке: " + ListSize(TestList())

; Первый способ перечислить все элементы
;
ResetList(TestList())               ; Сбрасывание внутреннего указателя списка на 'элемент перед первым'.

While NextElement(TestList())       ; Обработать все элементы...
  Debug "ResetList() - 'Field2' Значение: " + TestList()\Field2
Wend

; Второй способ, с помощью ForEach
;
ForEach TestList()       ; Process all the elements...
  Debug "ForEach() - 'Field2' Значение: " + TestList()\Field2
Next

SelectElement(TestList(), 2)  ; Перейдите непосредственно к 3-му элементу
Debug "3-й элемент - 'Field2' Значение: " + TestList()\Field2

End