반응형
C#의 배열을 한 마디로 정의하자면, 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 고정된 크기로 저장하는 데이터 구조이다. 배열의 크기는 고정되어 있으며, 한 번 설정되면 변경할 수 없다. 그렇기 때문에 정적 크기 배열이라고도 한다. 배열의 인덱스는 0 부터 시작된다.
배열의 특징
1. 고정 크기: 배열의 크기는 한 번 설정되면 변경할 수 없다.
2. 타입 안정성: 배열은 동일한 타입의 요소만 저장할 수 있다.
3. 효율성: 배열은 메모리의 연속된 공간을 차지하며, 인덱스를 통해 빠르게 접근할 수 있다.
4. 다차원 배열: C#에서는 2차원 이상의 다차원 배열도 지원한다.
주의사항
C# 배열은 간단한 데이터 구조를 관리할 때 매우 유용하지만, 크기를 동적으로 조정해야 하는 상황에서는 'List<T>'와 같은 동적 배열을 사용하는 것이 더 적합하다.
배열 선언 및 초기화의 방법론
1. 선언과 초기화 분리
int[] numbers;
numbers = new int[5];
2. 선언과 동시에 초기화
int[] numbers = new int[5];
3. 초기값을 지정하여 초기화
int[] numbers = { 1, 2, 3, 4, 5 };
4. 초기값을 지정하여 동적 크기로 초기화
int[] numbers = new int[] { 1, 2, 3, 4, 5 };
배열의 주요 특징 및 메서드
길이: Length 프로퍼티
int length = numbers.Length;
요소 접근 및 수정
numbers[0] = 10; // 첫 번째 요소를 10으로 변경
int firstElement = numbers[0]; // 첫 번째 요소 접근
배열 순회
for (int i = 0; i < numbers.Length; i++)
{
Debug.Log(numbers[i]);
}
foreach (int number in numbers)
{
Debug.Log(number);
}
다차원 배열
c#에서는 다차원 배열도 지원한다. 가장 일반적인 형태는 2차원 배열이다.
2차원 배열 선언과 초기화
int[,] matrix = new int[3, 3];
2차원 배열 선언과 동시에 초기화
int[,] matrix = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
2차원 배열 요소 접근
int element = matrix[1, 1]; // 5에 접근
matrix[1, 1] = 10; // 5를 10으로 변경
예제: Unity에서의 배열 사용
Unity에서 배열을 사용하여 여러 개의 오브젝트를 관리하는 예제
using UnityEngine;
public class ArrayExample : MonoBehaviour
{
// GameObject 타입의 배열 선언
public GameObject[] enemies;
void Start()
{
// 배열 크기 초기화
enemies = new GameObject[5];
// 적 캐릭터 생성 및 배열에 추가
for (int i = 0; i < enemies.Length; i++)
{
enemies[i] = new GameObject("Enemy" + i);
Debug.Log("Added: " + enemies[i].name);
}
}
void Update()
{
// 예시: 첫 번째 적 캐릭터를 접근하여 로그 출력
if (enemies.Length > 0)
{
Debug.Log("First Enemy: " + enemies[0].name);
}
}
반응형
'C# 자료구조, 알고리즘, 길찾기 > 선형자료' 카테고리의 다른 글
[자료구조] 스택(Stack)과 큐(Queue) 비교 (0) | 2024.06.10 |
---|---|
[C#] 동적 배열 List<T> (0) | 2024.06.07 |