C# 혼합 배열(Mixed Array)이란?
혼합 배열은 다차원 배열(multi-dimensional array)과 가변 배열(jagged array)을 결합한 형태의 배열입니다. 여러 차원을 가지면서도 각 행마다 서로 다른 길이의 하위 배열을 포함할 수 있는 유연한 구조를 의미합니다.
참고: .NET 4.0 업데이트에서 해당 타입이 제거되면서 혼합 배열은 현재 폐기된(obsolete) 기능입니다. 따라서 새로운 프로젝트에서는 사용하지 않는 것이 좋습니다.
혼합 배열 선언 방법
과거에는 object 타입 배열을 활용해 서로 다른 자료형을 하나의 배열에 담는 방식으로 혼합 배열을 선언할 수 있었습니다.
var x = new object[] {89, 45, "jacob", 9.8};컬렉션 객체를 요소로 함께 포함시키는 것도 가능했습니다.
var x = new object[] {87, 33, "tim", 6.7, new List<string>() {"football", "tennis", "squash", "cricket"}};대체 방법: List와 Tuple 활용하기
혼합 배열이 폐기된 지금, 동일한 작업에는 List 컬렉션이나 Tuple을 사용하는 것이 권장됩니다. 아래는 int형 숫자와 string형 문자열을 하나의 Tuple에 함께 담는 예시입니다.
Tuple<int, string> tuple = new Tuple<int, string>(60, "John");
위 내용을 실제로 실행할 수 있는 전체 예제는 다음과 같습니다.
using System;
using System.Collections.Generic;
class Program {
static void Main() {
// 컬렉션 초기화
Tuple<int, string> tuple = new Tuple<int, string>(99, "Jack");
if (tuple.Item1 == 99) {
Console.WriteLine(tuple.Item1);
}
}
}이처럼 서로 다른 자료형을 하나의 구조에 담아야 할 때는 형식 안정성(type safety)이 보장되는 Tuple이나 List<object>, 또는 사용자 정의 클래스를 활용하는 것이 바람직합니다.