C#
C# - Tuple(튜플) vs Struct(구조체)
Dev_Jen
2025. 7. 8. 14:32
반응형
✅ 튜플이란?
- 서로 다른 타입의 데이터를 한 번에 묶어서 저장할 수 있는 구조
- 배열이나 리스트처럼 하나의 타입만 저장하는 게 아니라,
여러 값을 하나의 단위로 다룰 수 있어
🔸 기본 예제
var person = ("Alice", 25);
Console.WriteLine(person.Item1); // "Alice"
Console.WriteLine(person.Item2); // 25
❓
여기서 나오는 Item1,2,3도 궁금해서 찾아봤다.
✅ 기본 튜플 (이름 없이 생성)
var tuple = ("Apple", 123, true);
Console.WriteLine(tuple.Item1); // "Apple"
Console.WriteLine(tuple.Item2); // 123
Console.WriteLine(tuple.Item3); // true
- Item1, Item2, Item3는 자동으로 붙는 이름이야
- 이름을 따로 정하지 않았기 때문에 이런 식으로 접근해야 해
✅ 이름 있는 튜플 (직접 이름 붙이기)
(string name, int price, bool inStock) product = ("Apple", 123, true);
Console.WriteLine(product.name); // "Apple"
Console.WriteLine(product.price); // 123
Console.WriteLine(product.inStock); // true
- 이렇게 하면 코드 가독성이 훨씬 좋아짐
- 실무에서는 웬만하면 이름 붙여서 쓰는 게 기본
✅
이런식으로 Item1,2,3은 자동으로 붙는 이름이라고 한다!
하지만 기본적인 자동으로 붙는 이름이지 우리가 정의해서 사용할수도 있다! 오...
약간 뭔가 구조체같은 느낌이다. 그래서 또 찾아봤다!
🎯 팁: 이름 붙인 튜플 vs 구조체
항목 | 튜플 | 구조체 |
용도 | 가벼운 값 묶음 | 더 복잡한 상태와 기능 표현 |
접근 | (x, y) 또는 .Item1 | .x, .y 필드 |
추천 상황 | 일시적 데이터 반환, 빠른 좌표 등 | 게임 캐릭터 정보, 상태 등 |
✅
이런식이라고 한다! 음 확실히 구조체와 튜플도 명확한 차이가 있는 듯 하다.
🔸 이름 붙여서 쓰기
(string name, int age) person = ("Alice", 25);
Console.WriteLine(person.name); // Alice
Console.WriteLine(person.age); // 25
🔸 튜플을 함수에서 반환하기
static (int sum, int count) Calculate(int[] numbers)
{
int sum = numbers.Sum();
int count = numbers.Length;
return (sum, count);
}
// 사용
var result = Calculate(new int[] { 1, 2, 3 });
Console.WriteLine($"합계: {result.sum}, 개수: {result.count}");
🧠 튜플은 언제 쓰면 좋을까?
상황 | 이유 |
함수에서 여러 값을 한 번에 반환하고 싶을 때 | return (x, y); |
좌표처럼 값들이 묶여 있는 개념을 표현할 때 | (int x, int y) |
임시로 두 값을 전달하거나 비교하고 싶을 때 | 빠르게 사용 가능 |
🎯 요약
개념 | 설명 |
튜플 (A, B) | 서로 다른 타입 여러 개를 한 덩어리로 묶음 |
접근 방식 | .Item1, .Item2 또는 이름 지정: (int x, int y) |
주 용도 | 간단한 데이터 묶음, 함수 복수 반환값, 좌표 표현 |
✅
리스트를 사용하다 튜플이 나오길래 처음에 튜플을 보고 이게뭐야? 싶었다 그래서 궁금해서 알아봤는데 정말 유용한듯하다!
반응형