0Pricing
C# Academy · 강의

스프레드 요소

스프레드 연산자로 컬렉션을 결합합니다.

스프레드 요소은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

스프레드 요소 ..

컬렉션 식 안에서 스프레드 요소 ..는 다른 컬렉션의 내용을 그대로 펼쳐 넣습니다. 이를 사용하면 시퀀스를 선언적으로 결합할 수 있습니다.

using System;

int[] a = [1, 2, 3];
int[] b = [4, 5, 6];
int[] all = [..a, ..b];
Console.WriteLine(string.Join(",", all)); // 1,2,3,4,5,6

스프레드와 단일 요소 섞기

스프레드 요소와 개별 값을 자유롭게 섞을 수 있으며, 순서는 유지됩니다.

using System;

int[] middle = [2, 3, 4];
int[] result = [1, ..middle, 5];
Console.WriteLine(string.Join(",", result)); // 1,2,3,4,5

앞에 추가하고 뒤에 추가하기

스프레드를 사용하면 "앞에 추가"나 "뒤에 추가"를 간단하게 구현할 수 있으며, 원본을 변경하는 대신 새 컬렉션을 만들 수 있습니다.

using System;

int[] core = [10, 20, 30];
int[] withHead = [0, ..core];
int[] withTail = [..core, 40];
Console.WriteLine(string.Join(",", withHead)); // 0,10,20,30
Console.WriteLine(string.Join(",", withTail)); // 10,20,30,40

여러 원본 펼치기

여러 컬렉션을 하나로 펼칠 수 있습니다. 하나의 표현식으로 여러 목록을 연결하는 방식입니다.

using System;
using System.Collections.Generic;

List<string> x = ["a", "b"];
List<string> y = ["c"];
List<string> z = ["d", "e"];
List<string> merged = [..x, ..y, ..z];
Console.WriteLine(string.Join(",", merged)); // a,b,c,d,e

서로 다른 컬렉션 형식 펼치기

스프레드 원본은 어떤 열거 가능한 컬렉션이든 될 수 있습니다. 배열을 목록으로 펼치거나 목록을 배열로 펼치는 식입니다. 결과는 대상 형식이 결정합니다.

using System;
using System.Collections.Generic;

int[] arr = [1, 2];
List<int> list = [3, 4];
int[] combined = [..arr, ..list];
Console.WriteLine(string.Join(",", combined)); // 1,2,3,4

열거 가능한 컬렉션 펼치기

LINQ에서 만든 지연 시퀀스도 펼칠 수 있습니다. 새 컬렉션을 만들 때 해당 시퀀스가 열거됩니다.

using System;
using System.Linq;

var evens = Enumerable.Range(1, 6).Where(n => n % 2 == 0);
int[] result = [0, ..evens];
Console.WriteLine(string.Join(",", result)); // 0,2,4,6

컬렉션 확장해서 만들기

스프레드를 사용하면 명령형 Add 호출 없이 컬렉션을 점진적으로 만들 수 있어 유용합니다.

using System;

int[] baseline = [1, 2, 3];
int[] extra = [4, 5];
int[] full = [..baseline, ..extra, 6];
Console.WriteLine(full.Length); // 6

순서가 중요합니다

결과 시퀀스는 요소와 스프레드가 텍스트에 나타난 순서를 따르므로, 스프레드의 순서를 바꾸면 출력도 달라집니다.

using System;

int[] a = [1, 2];
int[] b = [3, 4];
Console.WriteLine(string.Join(",", [..a, ..b])); // 1,2,3,4
Console.WriteLine(string.Join(",", [..b, ..a])); // 3,4,1,2

스프레드와 Concat 비교

스프레드는 Concat과 ToArray를 함께 사용하는 방식을 대신하는 경우가 많습니다. 읽기 더 명확하고 컴파일러가 결과 크기를 효율적으로 계산할 수 있습니다.

using System;
using System.Linq;

int[] a = [1, 2];
int[] b = [3, 4];
// old
int[] oldWay = a.Concat(b).ToArray();
// new
int[] newWay = [..a, ..b];
Console.WriteLine(oldWay.SequenceEqual(newWay)); // True

스팬으로 펼치기

대상을 스팬으로 지정할 수 있으므로 성능이 중요한 경로에서 스택 할당 가능성을 활용하면서 데이터를 결합할 수 있습니다.

using System;

ReadOnlySpan<int> head = [1, 2];
ReadOnlySpan<int> tail = [3, 4];
int[] joined = [..head, ..tail];
Console.WriteLine(string.Join(",", joined)); // 1,2,3,4

실용적인 병합

여기서는 하나의 표현식으로 기본 설정과 재정의 설정을 병합하고, 기본 설정 뒤에 나오는 값을 유지합니다.

using System;

string[] defaults = ["--verbose", "--color"];
string[] userArgs = ["--output=log.txt"];
string[] finalArgs = [..defaults, ..userArgs];
Console.WriteLine(string.Join(" ", finalArgs));

빠른 확인

스프레드 요소를 이해했는지 확인해 보세요.

복습

컬렉션 식 안에서 사용하는 스프레드 요소 ..를 배웠습니다.

  • [..a, ..b]는 컬렉션을 연결합니다.
  • 스프레드는 단일 요소와 섞을 수 있으며 순서를 유지합니다.
  • 원본은 배열, 목록, 스팬 또는 모든 IEnumerable이 될 수 있습니다.
  • Concat().ToArray()보다 명확한 대안입니다.

자주 묻는 질문

“스프레드 요소” 강의는 무료인가요?

네 — “스프레드 요소” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“스프레드 요소”에서 뭘 배우나요?

스프레드 연산자로 컬렉션을 결합합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“스프레드 요소” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 컬렉션 식 구문
  2. 스프레드 요소
  3. 컬렉션의 대상 형식 지정
  4. 컬렉션 작성기
← C# Academy(으)로 돌아가기