C#에서 배열 선언, 초기화, 활용법을 실전 코드 예제, 루핑 기법, LINQ 연산과 함께 다룹니다.
배열은 같은 타입 요소의 고정 크기 시퀀스를 저장합니다. 예를 들어 학생 나이 5개를 별도 변수 대신 단일 배열로 관리할 수 있습니다.
1. C# 배열 선언
다음 문법으로 배열 선언:
datatype[] arrayName;
datatype – 예: int, string, char 등.
arrayName – 유효한 식별자.
예시:
int[] age;
age는 정수 값들을 담을 수 있습니다.
배열 크기 결정
요소 수만큼 메모리 할당:
// 배열 선언
int[] age;
// 5개 요소 메모리 할당
age = new int[5];
또는 한 문장으로 선언과 할당:
int[] age = new int[5];
2. 배열 초기화
선언 시 초기화 가능:
int[] numbers = {1, 2, 3, 4, 5};
컴파일러가 초기화 리스트로부터 크기 추론.
선언 후 개별 요소 설정도 가능:
// 배열 선언
int[] age = new int[5];
// 요소 초기화
age[0] = 12;
age[1] = 4;
age[2] = 5;
// …
배열 인덱스는 0부터 시작.
5개 요소 배열의 인덱스는 0~4.
3. 요소 접근
인덱스로 요소 조회:
// 세 번째 요소
array[2];
// 다섯 번째 요소
array[4];
array[2]는 세 번째 요소 반환.
array[4]는 다섯 번째 요소 반환.
예제: 배열 요소 접근
using System;
namespace AccessArray {
class Program {
static void Main(string[] args) {
// 배열 생성
int[] numbers = {1, 2, 3};
// 첫 번째 요소 접근
Console.WriteLine("Element at index 0 : " + numbers[0]);
// 두 번째 요소 접근
Console.WriteLine("Element at index 1 : " + numbers[1]);
// 세 번째 요소 접근
Console.WriteLine("Element at index 2 : " + numbers[2]);
Console.ReadLine();
}
}
}
출력
Element at index 0 : 1
Element at index 1 : 2
Element at index 2 : 3
4. 요소 수정
인덱스에 새 값 할당으로 요소 변경:
using System;
namespace ChangeArray {
class Program {
static void Main(string[] args) {
// 배열 생성
int[] numbers = {1, 2, 3};
Console.WriteLine("Old Value at index 0: " + numbers[0]);
// 값 업데이트
numbers[0] = 11;
Console.WriteLine("New Value at index 0: " + numbers[0]);
Console.ReadLine();
}
}
}
출력
Old Value at index 0: 1
New Value at index 0: 11
5. 루프로 순회
for나 foreach로 배열 순회.
For 루프 예제
using System;
namespace AccessArrayFor {
class Program {
static void Main(string[] args) {
int[] numbers = { 1, 2, 3};
for(int i=0; i < numbers.Length; i++) {
Console.WriteLine("Element at index " + i + ": " + numbers[i]);
}
Console.ReadLine();
}
}
}
출력
Element at index 0: 1
Element at index 1: 2
Element at index 2: 3
numbers.Length로 배열 크기 획득.
Foreach 루프 예제
using System;
namespace AccessArrayForeach {
class Program {
static void Main(string[] args) {
int[] numbers = {1, 2, 3};
Console.WriteLine("Array Elements: ");
foreach(int num in numbers) {
Console.WriteLine(num);
}
Console.ReadLine();
}
}
}
출력
Array Elements:
1
2
3
6. System.Linq으로 배열 연산
System.Linq 네임스페이스는 배열 조작에 강력한 메서드 제공.
최솟값과 최댓값 찾기
using System;
using System.Linq;
namespace ArrayMinMax {
class Program {
static void Main(string[] args) {
int[] numbers = {51, 1, 3, 4, 98};
Console.WriteLine("Smallest Element: " + numbers.Min());
Console.WriteLine("Largest Element: " + numbers.Max());
Console.ReadLine();
}
}
}
출력
Smallest Element: 1
Largest Element: 98
평균 계산
using System;
using System.Linq;
namespace ArrayFunction {
class Program {
static void Main(string[] args) {
int[] numbers = {30, 31, 94, 86, 55};
float sum = numbers.Sum();
int count = numbers.Count();
float average = sum / count;
Console.WriteLine("Average : " + average);
Console.WriteLine("Average using Average() : " + numbers.Average());
Console.ReadLine();
}
}
}
출력
Average : 59.2
Average using Average() : 59.2
참고: using System.Linq; 추가로 Min, Max, Sum, Count, Average 메서드 사용 가능.