// C# 12에서는 Spread가 도입되어,
// 배열이나 리스트를 더 간결하게 초기화할 수 있다.
int[] a = [1, 2, 3];
int[] b = [0, ..a, 4]; // 결과: b = [0, 1, 2, 3, 4]
// 복수 Spread 연산자(..) 사용 가능
int[] x = [1, 2];
int[] y = [3, 4];
int[] z = [..x, 99, ..y]; // [1, 2, 99, 3, 4]
// List 요소를 배열에 Spread
List<int> list = [10, 20, 30];
int[] arr = [1, ..list, 2]; // [1,10,20,30,2]
// IEnumerable of T 를 Spread에서 사용한 경우
IEnumerable<int> Get()
{
yield return 1;
yield return 2;
}
var r = [0, ..Get(), 9];
// 결과: [0,1,2,9]
// 조건부 Spread 연산자 사용 가능
bool flag = true;
int[] result = [1, 2, 3, ..(flag ? [9, 9] : [])];