<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="../../../design/description.xslt" type="text/xsl"?>
<node lang="de" type="DynamicNode.Lib.Basic.NListItem" assembly="NLibDefault" xmlns="http://dynamicnodes.mastersign.de/description">
  <caption>Listenelement</caption>
  <group>Basis</group>
  <description>
    Wählt ein Element aus einer Aufzählung. 
    Dabei kann ein Index angegeben und relativ vorwärts oder rückwärts navigiert werden.
  </description>
  <inPorts>
    <port name="iterable">
      <type>System.Collections.Generic.IEnumerable&lt;TElement&gt;</type>
      <description>Die Liste aus der ein Element entnommen werden soll.</description>
    </port>
    <port name="toBegin">
      <type>&lt;TAny&gt;</type>
      <description>Springt zum ersten Element der Liste.</description>
    </port>
    <port name="forward">
      <type>&lt;TAny&gt;</type>
      <description>Springt zum nächsten Element in der Liste.</description>
    </port>
    <port name="backward">
      <type>&lt;TAny&gt;</type>
      <description>Springt zum vorherigen Element in der Liste.</description>
    </port>
    <port name="toEnd">
      <type>&lt;TAny&gt;</type>
      <description>Springt zum letzten Element der Liste.</description>
    </port>
    <port name="indexIn">
      <type>System.Int32</type>
      <description>
        Nimmt eine Ganzzahl als Position entgegen und
        springt wenn möglich zu der angegebenen Position.
      </description>
    </port>
  </inPorts>
  <outPorts>
    <port name="item">
      <type>TElement</type>
      <description>Gibt das aktuelle Element der Liste weiter.</description>
    </port>
    <port name="outOfRange">
      <type>DynamicNode.Core.ControlTrigger</type>
      <description>Gibt eine Trigger-Marke weiter, wenn versucht wird, 
      zu einer Position außerhalb der Liste zu navigieren.</description>
    </port>
    <port name="indexOut">
      <type>System.Int32</type>
      <description>Gibt die aktuelle Position in der Liste weiter.</description>
    </port>
    <port name="count">
      <type>System.Int32</type>
      <description>Gibt die Anzahl der Elemente in der Liste weiter.</description>
    </port>
  </outPorts>
  <helpText>
    <p>
      Dieser Knoten kann verwendet werden, um Elemente aus einer Liste (Array, Liste, etc.)
      abzurufen. Das Element wird durch Navigation in der Liste ausgewählt.
    </p>
    <p>
      Die Navigation kann relativ durch Vorwärts- und Rückwärtsbewegen
      oder absolut durch die Angabe einer Zielposition erfolgen.
    </p>
    <info>
      Die Performance dieses Knotens ist besser, wenn die eingehende Aufzählungen 
      die Schnittstelle <c>System.Collections.IList</c> implementieren. 
      Andernfalls wird für jede Aufzählung eine neue Liste angelegt und der Inhalt
      der Aufzählung in die Liste kopiert, was bei großen Aufzählungen zu signifikantem
      Mehraufwand werden kann.
      Wenn ausschließlich vorwärts durch eine Aufzählung iteriert werden soll,
      ist der Knotentyp <a href="DynamicNode.Lib.Basic.Iteration.xml">Iterator</a>
      die bessere Wahl, weil er keinen Wahlfreien Zugriff auf die Elemente der Aufzählung
      benötigt.
    </info>
  </helpText>
</node>