0Pricing
C# Academy · 강의

컬렉션 식 구문

배열, 목록 및 스팬을 일관된 방식으로 초기화합니다.

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

컬렉션 식(C# 12)

C# 12에서는 컬렉션 식을 도입했습니다. 하나의 대괄호 구문으로 배열, 목록, 스팬 등을 만들 수 있습니다. new int[] { 1, 2, 3 } 대신 간단히 [1, 2, 3]이라고 작성하면 됩니다.

using System;

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

하나의 구문, 다양한 대상

대상이 배열이든 List<T>이든 Span<T>이든 동일한 [...] 리터럴을 사용할 수 있습니다. 컴파일러가 알맞은 생성을 선택합니다.

using System;
using System.Collections.Generic;

int[] arr = [1, 2, 3];
List<int> list = [4, 5, 6];
Span<int> span = [7, 8, 9];
Console.WriteLine(arr.Length + " " + list.Count + " " + span.Length);

빈 컬렉션

빈 컬렉션 식은 단순히 []입니다. Array.Empty<T>()나 new List<T>()보다 명확하며 대상 형식이 자동으로 결정됩니다.

using System;
using System.Collections.Generic;

int[] empty = [];
List<string> names = [];
Console.WriteLine(empty.Length + " " + names.Count); // 0 0

장황한 초기화 구문 바꾸기

컬렉션 식을 사용하면 이전 초기화 구문의 번거로운 형식 절차를 없앨 수 있습니다. 아래 두 형식을 비교해 보세요.

using System;
using System.Collections.Generic;

// old
List<int> oldWay = new List<int> { 1, 2, 3 };
// new
List<int> newWay = [1, 2, 3];
Console.WriteLine(oldWay.Count == newWay.Count); // True

중첩 컬렉션

컬렉션 식을 중첩하여 가변 배열이나 목록의 목록을 만들 수 있습니다.

using System;

int[][] grid = [[1, 2], [3, 4], [5, 6]];
Console.WriteLine(grid[1][0]); // 3

요소로 사용하는 표현식

요소에는 변수, 메서드 호출, 산술 연산을 포함한 모든 표현식을 사용할 수 있습니다.

using System;

int x = 10;
int[] values = [x, x * 2, x + 5, Math.Abs(-3)];
Console.WriteLine(string.Join(",", values)); // 10,20,15,3

다차원 배열 참고 사항

컬렉션 식은 직사각형 배열(int[,])이 아니라 가변 배열(int[][])을 만듭니다. 직사각형 배열은 여전히 고유한 구문을 사용합니다.

using System;

int[][] jagged = [[1, 2, 3], [4, 5]];
Console.WriteLine(jagged[0].Length + " " + jagged[1].Length); // 3 2

스팬 사용하기

컬렉션 식은 Span<T>과 ReadOnlySpan<T>을 대상으로 사용할 수 있으므로, 컴파일러가 스택 할당을 사용하여 수명이 짧은 데이터에 힙 가비지가 생성되는 것을 피할 수 있습니다.

using System;

ReadOnlySpan<int> stackData = [1, 2, 3, 4];
int total = 0;
foreach (int n in stackData) total += n;
Console.WriteLine(total); // 10

메서드에 컬렉션 전달하기

매개 변수 형식이 컬렉션이면 호출 위치에서 컬렉션 식을 직접 전달할 수 있습니다.

using System;

static int Sum(int[] xs) {
    int t = 0;
    foreach (int x in xs) t += x;
    return t;
}

Console.WriteLine(Sum([2, 4, 6])); // 12

가독성이 좋아집니다

컬렉션 식은 구성 테이블이나 테스트 픽스처처럼 데이터가 많은 코드에서 특히 유용합니다. 대괄호 덕분에 값에 집중할 수 있기 때문입니다.

using System;

string[] days = ["Mon", "Tue", "Wed", "Thu", "Fri"];
Console.WriteLine(days[^1]); // Fri

컬렉션 반환하기

메서드는 컬렉션 식을 반환할 수 있으며, 반환 형식이 생성 방식을 결정합니다.

using System;

static int[] Primes() => [2, 3, 5, 7, 11];

Console.WriteLine(string.Join(",", Primes())); // 2,3,5,7,11

빠른 확인

컬렉션 식의 기본 내용을 이해했는지 확인해 보세요.

복습

C# 12의 컬렉션 식 구문을 배웠습니다.

  • [1, 2, 3]은 장황한 초기화 구문을 대신합니다.
  • []는 빈 컬렉션입니다.
  • 대상 형식이 지정되므로 배열, 목록, 스팬 모두 사용할 수 있습니다.
  • 중첩된 대괄호로 가변 배열을 만들 수 있습니다.

자주 묻는 질문

“컬렉션 식 구문” 강의는 무료인가요?

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

“컬렉션 식 구문”에서 뭘 배우나요?

배열, 목록 및 스팬을 일관된 방식으로 초기화합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“컬렉션 식 구문” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

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