C#의 배열(Array)는 같은 데이터 타입의 요소들을 연속적으로 저장하는 자료구조이다.
배열을 사용하면 여러 개의 값을 한 변수에 저장하고 쉽게 관리할 수 있다.
배열 선언 방법
타입[] 배열이름;
int[], string[] 등)배열 선언 & 초기화 예제
int[] numbers = new int[5]; // 크기가 5인 정수형 배열 생성
0, null, false)으로 설정된다.int[5] → 5개의 공간을 가진 배열이지만 값은 초기화되지 않는다.인덱스를 사용하여 값 저장 및 접근
int[] numbers = new int[3];
numbers[0] = 10; // 첫 번째 요소에 10 저장
numbers[1] = 20; // 두 번째 요소에 20 저장
numbers[2] = 30; // 세 번째 요소에 30 저장
Console.WriteLine(numbers[1]); // 20 출력
numbers[1]은 배열의 두 번째 요소를 의미한다.선언과 동시에 초기화 하는 방법
int[] numbers = { 10, 20, 30, 40, 50 };
또는
int[] numbers = new int[] { 10, 20, 30, 40, 50 };
크기를 지정하지 않아도 컴파일러가 자동으로 배열 크기를 설정한다.
for 문으로 배열 순회
int[] numbers = { 10, 20, 30, 40, 50 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine($"Index {i}: {numbers[i]}");
}
foreach 문으로 배열 순회
int[] numbers = { 10, 20, 30, 40, 50 };
foreach (int num in numbers)
{
Console.WriteLine(num);
}
foreach문은 요소를 직접 가져오기 때문에 더 간결하고 가독성이 좋다.2차원 배열 (행렬 형태)
int[,] matrix = new int[2, 3] // 2행 3열 배열
{
{ 1, 2, 3 },
{ 4, 5, 6 }
};
// matrix[0,0] = 1
// matrix[1,2] = 6
2차원 배열 순회
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(matrix[i, j] + " ");
}
Console.WriteLine();
}
// 1 2 3
// 4 5 6
가변 배열 (Jagged Array, 계단형 배열)
행마다 열 개수가 다를 수 있다.
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[] { 1, 2 };
jaggedArray[1] = new int[] { 3, 4, 5 };
jaggedArray[2] = new int[] { 6 };
for (int i = 0; i < jaggedArray.Length; i++)
{
for (int j = 0; j < jaggedArray[i].Length; j++)
{
Console.Write(jaggedArray[i][j] + " ");
}
Console.WriteLine();
}
배열 정렬 (Array.Sort())
int[] numbers = { 5, 3, 8, 1, 2 };
Array.Sort(numbers); // 오름차순 정렬
foreach (var num in numbers)
{
Console.Write(num + " "); // 1 2 3 5 8 출력
}
// 배열을 오름차순으로 정렬함
배열 뒤집기 (Array.Reverse())
Array.Reverse(numbers);
배열 요소 찾기 (Array.IndexOf())
int index = Array.IndexOf(numbers, 3);
Console.WriteLine(index); // 3이 있는 인덱스 출력
-1을 반환한다.| 비교 항목 | 배열 (Array) | 리스트 (List<T>) |
|---|---|---|
| 크기 변경 가능 여부 | ❌ 고정 크기 | ✅ 동적 크기 변경 가능 |
| 선언 방식 | int[] arr = new int[5]; | List<int> list = new List<int>(); |
| 요소 추가/삭제 | ❌ 불가능 (배열 크기 변경 불가) | ✅ list.Add(값), list.Remove(값) |
| 성능 | ✅ 빠름 | 🔺 크기 변경 시 성능 저하 가능 |
List<T>가 더 적합하다.List<T>는 Array보다 성능이 다소 떨어질 수 있다.| 개념 | 설명 | 예제 |
|---|---|---|
| 배열 선언 | 크기가 고정된 배열 | int[] arr = new int[5]; |
| 배열 초기화 | 값을 직접 설정 | int[] arr = { 1, 2, 3 }; |
| 배열 접근 | 인덱스를 사용하여 값 가져오기 | arr[0] |
| 배열 순회 | for 또는 foreach 사용 | foreach (var n in arr) { ... } |
| 2차원 배열 | 행렬 형태의 배열 | int[,] matrix = new int[2, 3]; |
| 가변 배열 | 행마다 열 개수가 다른 배열 | int[][] jaggedArray = new int[3][]; |
| 배열 정렬 | Array.Sort() 사용 | Array.Sort(arr); |
| 배열 뒤집기 | Array.Reverse() 사용 | Array.Reverse(arr); |
| 배열에서 요소 찾기 | Array.IndexOf() 사용 | Array.IndexOf(arr, 3); |