# Join

Der `-join` Operator in PowerShell wird verwendet, um mehrere Elemente (z. B. Strings in einem Array) zu einem einzigen String zusammenzufügen.

---

## 🧠 Syntax

```powershell
<array> -join <delimiter>

```

Oder ohne Trennzeichen:

```powershell
<array> -join

```

---

## 📌 Grundlagen

- Gibt immer einen **String (`System.String`)** zurück
- Verbindet alle Elemente eines Arrays **in der gegebenen Reihenfolge**
- Der Delimiter wird **wörtlich verwendet** (kein Regex!)
- Standard-Delimiter ist ein **leerer String** (`""`)

---

## 🔹 Beispiele

### Einfaches Zusammenfügen

```powershell
$array = "Apfel","Birne","Banane"
$result = $array -join ","

```

**Ergebnis:**

```powershell
Apfel,Birne,Banane

```

---

### Join ohne Trennzeichen

```powershell
$array = "Hallo","Welt"
$result = $array -join

```

**Ergebnis:**

```powershell
HalloWelt

```

---

### Join mit Leerzeichen

```powershell
$array = "Das","ist","ein","Test"
$result = $array -join " "

```

**Ergebnis:**

```powershell
Das ist ein Test

```

---

### Join mit Zeilenumbruch

```powershell
$array = "Zeile1","Zeile2","Zeile3"
$result = $array -join "`n"

```

**Ergebnis:**

```powershell
Zeile1
Zeile2
Zeile3

```

---

## ⚠️ Wichtige Hinweise

### 1. Kein Regex

**Im Gegensatz zu `<a href="https://doku.borinas.com/books/powershell-programmierung/page/split" title="Split">-split</a>`:**  
Der Delimiter wird **nicht** als [regulärer Ausdruck](https://doku.borinas.com/books/webseiten-entwicklung/page/regularer-ausdruck-regex "Regulärer Ausdruck (RegEx)") interpretiert.

Das bedeutet:

- Sonderzeichen haben **keine spezielle Bedeutung**
- `"."` ist einfach ein Punkt, kein Platzhalter

---

### 2. `$null`-Werte

```powershell
$array = "A",$null,"B"
$result = $array -join ","

```

**Ergebnis:**

```powershell
A,,B

```

**Erklärung:**

- `$null` wird als **leerer String** behandelt
- Der Delimiter wird trotzdem eingefügt

---

### 3. Nicht-String-Werte

```powershell
$array = 1,2,3
$result = $array -join "-"

```

**Ergebnis:**

```powershell
1-2-3

```

**Erklärung:**

- Alle Elemente werden **automatisch in Strings konvertiert**

---

## 🔄 Alternative Methoden

### `[string]::Join()`

```powershell
[string]::Join(",", $array)

```

**Unterschied zu `-join`:**

- Methodenaufruf statt Operator
- Gleiche Funktionalität, oft in .NET-Kontexten verwendet

---

## 🧩 Typische Anwendungsfälle

- Array in einen String umwandeln
- CSV-Zeilen erzeugen
- Textausgaben formatieren
- Mehrzeilige Strings erzeugen

---

## 🧪 Mini-Beispiel aus der Praxis

```powershell
$user = "Max","Mustermann",30
$csv = $user -join ";"

```

**Ergebnis:**

```powershell
Max;Mustermann;30

```

---

## 🧠 Merksatz

> `-join` klebt alles zusammen. Ohne Struktur, wenn du keinen Delimiter setzt.