C# 타입 시리즈 2편에서는 컬렉션(Collection)과 특수 타입을 다룰 거예요! 🚀
1편에서 기본 타입과 값/참조 타입의 차이를 배웠다면, 이제는 여러 개의 데이터를 다루는 컬렉션 타입과 특수 타입(enum, struct, tuple 등)을 배워볼 차례!
✔️ enum, struct, Tuple의 특징
✔️ List<T>, Dictionary<K,V> 같은 컬렉션 타입
✔️ 배열(Array)과의 차이
이번 글을 보면 C#에서 데이터를 효과적으로 관리하는 방법을 이해할 수 있어요! 😃
1️⃣ enum (열거형)
enum(열거형)은 관련된 상수들의 집합을 정의할 때 사용해요.
예를 들어, 요일, 상태 코드, 색상 같은 값을 enum으로 표현하면 가독성이 좋아져요.
✅ enum 선언과 사용
enum DayOfWeek
{
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
}
DayOfWeek today = DayOfWeek.Wednesday;
Console.WriteLine(today); // Wednesday
- 기본적으로 enum의 각 값은 int로 매핑되며, 0부터 자동 증가
- 직접 숫자 지정도 가능
enum StatusCode
{
Success = 200,
NotFound = 404,
ServerError = 500
}
StatusCode status = StatusCode.NotFound;
Console.WriteLine((int)status); // 404
2️⃣ struct (구조체)
struct는 값 타입이며, 작은 데이터 묶음을 다룰 때 사용해요.
클래스(class)와 달리 스택(Stack)에 저장되기 때문에 성능이 중요한 경우 사용해요.
✅ struct 선언과 사용
struct Point
{
public int X;
public int Y;
public Point(int x, int y)
{
X = x;
Y = y;
}
}
Point p1 = new Point(10, 20);
Console.WriteLine($"X: {p1.X}, Y: {p1.Y}"); // X: 10, Y: 20
- struct는 기본적으로 값 타입이라 복사(copy)됨
- 작은 데이터 묶음에 적합하지만, 복잡한 로직이 필요하면 class 사용이 권장됨
3️⃣ Tuple (튜플)
Tuple은 여러 개의 값을 한 번에 반환할 때 유용해요!
✅ Tuple 선언과 사용
var person = ("Alice", 25, "Developer");
Console.WriteLine($"{person.Item1}, {person.Item2}, {person.Item3}");
// Alice, 25, Developer
- Item1, Item2처럼 기본 이름이 붙지만, 명확한 이름을 지정할 수도 있어요!
var person = (Name: "Alice", Age: 25, Job: "Developer");
Console.WriteLine($"{person.Name}, {person.Age}, {person.Job}");
// Alice, 25, Developer
- 함수에서 여러 값을 반환할 때도 사용 가능
(string, int) GetPersonInfo()
{
return ("Alice", 25);
}
var (name, age) = GetPersonInfo();
Console.WriteLine($"{name}, {age}");
// Alice, 25
4️⃣ 배열과 컬렉션 (List<T>, Dictionary<K,V> 등)
C#에서 여러 개의 데이터를 다루는 방법에는 배열(Array)과 컬렉션(Collection)이 있어요.
컬렉션은 배열보다 더 강력한 기능을 제공해요! 🚀
🔹 배열 (Array)
int[] numbers = { 1, 2, 3, 4, 5 };
Console.WriteLine(numbers[0]); // 1
- 고정된 크기를 가짐
- 요소를 추가/삭제할 수 없음
🔹 List<T> (동적 배열)
List<int> numbers = new List<int> { 1, 2, 3 };
numbers.Add(4); // 추가
numbers.Remove(2); // 삭제
Console.WriteLine(string.Join(", ", numbers)); // 1, 3, 4
- 크기가 자동 조정됨
- 요소 추가/삭제 가능
🔹 Dictionary<Key, Value> (키-값 저장)
Dictionary<string, int> scores = new Dictionary<string, int>();
scores["Alice"] = 90;
scores["Bob"] = 85;
Console.WriteLine(scores["Alice"]); // 90
- 고유한 키(Key)로 값을 저장
- 빠른 검색이 가능
✅ 마무리
이번 글에서는 C#의 컬렉션과 특수 타입(enum, struct, tuple, List 등)을 배웠어요! 🚀
✔ enum으로 상수 값 관리
✔ struct는 값 타입, class는 참조 타입
✔ Tuple로 여러 값 한 번에 반환
✔ 배열 vs List<T> vs Dictionary<K,V> 차이
💡 다음 시리즈에서는 IEnumerable<T>, IQueryable<T>, DataRow 같은 데이터 관련 타입을 깊이 있게 알아볼 예정입니다!