---
# System prepended metadata

title: C#語法糖-集合表達式
tags: [語法特性, 語法糖, C#]

---

集合表達式是C#12推出的語法特性
旨在簡化集合的語法

傳統的集合語法，根據情況可能會有好幾種不同的寫法，如下
``` csharp
string[] s1 = new string[] { "a", "b", "c" };
List<string> s2 = new() { "d", "e", "f" };
string[] s3 = Array.Empty<string>();
PrintArray(new string[] { "g", "h", "i" });
```

有些地方要用{}，有些地方要用[]，實際上在使用的時候有可能會造成混淆(雖然編譯器會做檢查...)

集合表達式就是希望簡化這些語法，以下程式是經過集合表達式修改後的程式碼
```csharp
string[] s1 = ["a", "b", "c"];
List<string> s2 = ["d", "e", "f"];
string[] s3 = [];
PrintArray(["g", "h", "i"]);
```

此外，可以用(散佈運算子)來合併集合
``` csharp
string[] s5 = [.. s1, .. s2, .. s3];
```