# List Operations

Dieser Funktionsblock bietet eine Sammlung gängiger Listenmanipulationen in einer einzigen, einfach zu bedienenden Oberfläche. Wählen Sie eine Operation aus dem Dropdown-Menü und der Block passt seine Eingänge und Ausgänge an, sodass Sie mit Listen arbeiten können (erstellen, abfragen, ändern, kombinieren, filtern und mehr) — ganz ohne Code.

## 📥 Eingänge

Die verfügbaren Eingänge ändern sich dynamisch basierend auf der gewählten Operation.

* `List`\
  Ein allgemeiner Listeneingang, der von vielen Operationen verwendet wird.
* `Element`\
  Ein einzelnes Element zum Anhängen, Entfernen oder Suchen.
* `Index`\
  Ein ganzzahliger Index für Operationen wie `Get`, `Set`, `Insert` oder `Pop`.
* `List(s)`\
  Wenn mehrere Listen kombiniert werden (`Pair`), akzeptiert diese Buchse eine Liste von Listen.
* `List (String)`\
  Ein einzelner Texteingang, der von der Methode `Create` verwendet wird, um aus einer durch Kommas getrennten Zeichenkette eine Liste zu bauen.

(Weitere Eingangs-Buchsen erscheinen je nach gewählter Methode.)

## 📤 Ausgänge

Die Ausgänge sind ebenfalls dynamisch und spiegeln die gewählte Methode wider.

* `List`\
  Zurückgegebene Liste nach Mutations-Operationen (z. B. `append`, `extend`, `remove`).
* `Filtered List`\
  Ergebnis einer Filter-Operation.
* `Element`\
  Einzelnes Element, das von `Get`, `Min`, `Max` usw. zurückgegeben wird.
* `Size`\
  Länge, die von der Methode `Len` zurückgegeben wird.
* `Index`\
  Index eines Elements für die Methode `Index`.

(Zusätzliche Ausgabebuchsen erscheinen je nach Auswahl.)

## 🕹️ Steuerungen

* `Select a method`\
  Ein Dropdown mit einer kleinen Aktionsschaltfläche. Wählen Sie die gewünschte Listenoperation (Beispiele: append, extend, filter, create, len, min, max, slice, pair). Der Block aktualisiert die Buchsen automatisch, wenn Sie die Auswahl ändern.
* `Info`\
  Ein kleiner Textbereich, der Hinweise zur Verwendung der gewählten Methode anzeigt (z. B. dass Filter-Bedingungen eine boolesche Liste mit gleicher Länge sein müssen).

## 🎨 Funktionen

* Dynamische Buchsen: Eingänge und Ausgänge werden beim Wechsel der Methode automatisch erstellt oder entfernt, damit die Oberfläche übersichtlich bleibt.
* Umfangreiches Operationsset: Unterstützt Erstellen, Abfragen, Ändern und Kombinieren von Listen (append, extend, insert, pop, remove, filter, slice, sort, reverse, sum, min/max, index, set, pair und mehr).
* Eingebaute Validierung: Warnt bei Indexüberschreitungen oder bei nicht passenden Listengrößen (z. B. bei `filter` oder `pair`).
* Erstellen aus Text: Schnell eine Liste aus einer durch Kommas getrennten Zeichenkette mit der Methode `Create` erzeugen.

## ⚙️ Ablauf

1. Wählen Sie eine Methode mit der Steuerung `Select a method`.
2. Der Block passt seine Eingangs- und Ausgangsbuchsen an die gewählte Operation an.
3. Geben Sie die erforderlichen Eingaben durch Verbinden anderer Blöcke oder durch direkte Werteingabe.
4. Beim Ausführen des Szenarios führt der Block die gewählte Listenoperation aus und liefert die Ergebnisse auf den entsprechenden Ausgängen.
5. Sind Eingaben ungültig (z. B. Größenabweichungen, ungültiger Index), zeigt der Block eine Fehlermeldung an und liefert, wo sinnvoll, einen sicheren Fallback.

## 📝 Nutzungshinweise

1. Öffnen Sie den Block und wählen Sie die gewünschte Operation in `Select a method`.
2. Lesen Sie den angezeigten `Info`-Text für kurze Hinweise zur Methode.
3. Verbinden Sie passende Eingänge (z. B. eine Liste und ein Element für `Append`).
4. Führen Sie das Szenario aus und lesen Sie die Ergebnisse an den Ausgabebuchsen ab, die für die gewählte Methode erscheinen.

## 💡 Tipps und Tricks

* `Create`\
  Verwenden Sie zusammen mit einem `String Input`-Block, damit Nutzer durch Kommas getrennte Elemente eingeben können, die automatisch in eine Liste umgewandelt werden.
* `Filter` und `Filter Inverse`\
  Erzeugen Sie die Bedingungsliste mit logischen Blöcken wie `Equals`, `Greater` oder `Less` und geben Sie diese boolesche Liste in diesen Block, um die passenden Elemente herauszufiltern.
* `Pair`\
  Nützlich, um parallele Datenströme zu kombinieren. `Pair` eignet sich gut für Ausgaben von `Object Detection` oder `Object Detection - Custom`, wenn Sie parallele Listen (z. B. Positionen und Größen) haben und diese für Logging oder Export zusammenführen möchten.
* `Get`, `Index`, `Min`, `Max`\
  Kombinieren Sie mit `Get Element`, `Exclude Nones` oder `Replace None`, um Eingaben zu bereinigen, bevor Sie abfragen oder aggregieren.
* `Sum`, `Len`\
  Verwenden Sie mit `Scope` oder `CSV Export`, um numerische Zusammenfassungen für Diagramme oder Protokolle zu sammeln.
* `Slice`\
  Bei Stapelverarbeitung mit `Debatch` oder `Batch Processing` kombinieren, um Teilmengen zu iterieren und zu verarbeiten.

Allgemein:

* Verwenden Sie `Data Memory`, wenn Sie eine Liste stabil halten wollen, bis ein explizites Update eintrifft.
* Nach der Umstrukturierung von Listen hier: Ergebnisse an `Data to JSON` oder `CSV Export` senden, um sie extern zu speichern.
* Beim Erstellen von Listen aus Text: `Find Substring` und `String Merge` nutzen, um Zeichenketten vorzubereiten, bevor Sie `Create` anwenden.

(Halten Sie diese verwandten Blöcke in Ihrer Arbeitsumgebung bereit, um robuste Pipelines zu bauen.)

## 🛠️ Fehlersuche

* `Filter` und Größenmismatch\
  Wenn ein Fehler wegen ungleicher Größen angezeigt wird, stellen Sie sicher, dass die Bedingungsliste genauso viele Elemente hat wie die Datenliste. Verwenden Sie `Get Batch Size` oder `Len`, um Größen zu prüfen.
* `Index out of range`\
  Für Methoden mit Index (`Get`, `Set`, `Insert`, `Pop`) prüfen Sie die Indexgrenzen vor dem Verbinden. Nutzen Sie `Len` oder `Get Batch Size`, um gültige Bereiche zu bestimmen.
* `Unexpected types`\
  Einige Operationen erwarten numerische oder vergleichbare Elemente (`Sum`, `Min`, `Max`, `Sort`). Verwenden Sie `Replace None` und `Exclude Nones`, um die Liste vorher zu bereinigen.
* `Creating lists from text`\
  Bei `Create`: Stellen Sie sicher, dass die Elemente durch Kommas getrennt sind. Überflüssige Leerzeichen werden automatisch entfernt, aber nicht-numerische Tokens bleiben Zeichenketten — prüfen Sie gegebenenfalls mit `Find Substring` oder anderen `String Operations` für eine weitere Aufbereitung.

Wenn Probleme bestehen bleiben, schauen Sie in den `Info`-Hinweis zur ausgewählten Methode — dort stehen oft schnelle, methodenspezifische Hinweise.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/german/function-blocks/data-logic/datenoperationen-data-operations/list-operations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
