C#에서 배열(Array)은 인덱스(Index)로 액세스할 수 있는 동일한 데이터 유형의 값으로 만들어지는 순차적 데이터 집합을 말합니다.
배열의 모든 요소는 배열 이름과 인덱스를 사용하여 액세스할 수 있으며, 배열의 인덱스는 0부터 시작해서 1씩 증가하면서 지정됩니다.
배열을 잘 활용하면 불필요한 변수 사용을 줄일 수 있고, 프로그램 코딩을 단순화 할 수 있습니다.
이번 글에서는 C# 배열(Array) 사용 방법(배열 선언, 정의, 초기화, 사용 예제)에 대해 알아보겠습니다.
C# 배열(Array) 선언
▶ C#에서 배열을 선언하는 방법은 아래 구문 형태를 사용하면 됩니다.
- dataType[] arrayName;
- dataType : 배열에 저장될 요소들의 데이터 유형(Data Type) 입니다.
- arrayName : 배열 이름입니다.
- 예제 : int[] numbers; ▷ Numbers라는 배열 이름으로 정수형 데이터 집합을 가집니다.
string[] names; ▷ Names라는 배열 이름으로 문자형 데이터 집합을 가집니다.
C# 배열(Array) 정의
▶ C#에서 배열을 선언만 한다고 해서 바로 사용할 수는 없습니다. 배열을 사용하기 위해서는 배열 정의가 필요합니다.
▶ 일반적으로 배열 정의는 아래 구문 형태를 따릅니다.
- arrayName = new dataType[size];
- arrayName은 배열 선언에서 선언한 배열 이름입니다.
- new : 정의를 위한 키워드입니다.
- dataType : 배열 요소의 데이터 유형(Data Type) 입니다.
- size : 배열의 크기 입니다. 즉, 배열을 채울 요소의 최대 수 입니다.
- 예제 : int[] numbers = new int[5]; ▷ 배열에 5개의 정수형 데이터를 저장할 수 있습니다.
string[] names = new string[10]; ▷ 배열에 10개의 문자형 데이터를 저장할 수 있습니다.
C# 배열(Array) 초기화
▶ C#에서 배열 초기화는 배열에 요소를 채우는 과정입니다. 이렇게 채워진 배열 요소를 다른 구문에서 사용하게 됩니다.
- 배열 초기화는 중괄호({,})와 배열 요소를 나누는 쉽표(,)를 사용하여 지정하는 값으로 배열을 초기화 할 수 있습니다.
- int[] numbers = { 87, 95, 48, 76, 9, 105 };
- string[] names = { “LEE”, “KIM”, “PARK”, “SON”, “SHIN” };
▶ 보통 배열을 사용할 때 선언, 정의, 초기화를 한 번에 처리하는 경우가 많습니다.
- int[] numbers; (선언)
- numbers = new int[6]; (정의)
- numbers = { 87, 95, 48, 76, 9, 105 }; (초기화)
- int[] numbers = { 87, 95, 48, 76, 9, 105 }; (선언, 정의, 초기화를 한번에 처리)
C# 배열(Array) 사용 예제 1 – 정수형
▶ 아래 예제는 정수형 배열을 처리하는 예제 입니다.
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int[] numbers = { 87, 95, 48, 76, 9, 105 };
Console.WriteLine(“Numbers[0] : “ + numbers[0]);
Console.WriteLine(“Numbers[3] : “ + numbers[3]);
Console.WriteLine(“Numbers[5] : “ + numbers[5]);
}
}
}
|
▼ 위 예제의 실행 결과입니다.
- 배열 인덱스 0, 3, 5에 있는 요소의 값을 가져옵니다. 첫 번째, 네 번째, 여섯 번째 요소가 이에 해당합니다.
C# 배열(Array) 사용 예제 2 – 문자형
▶ 아래 예제는 문자형 배열을 처리하는 예제 입니다.
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string[] names = { “LEE”, “KIM”, “PARK”, “SON”, “SHIN” };
Console.WriteLine(“Names[1] : “ + names[1]);
Console.WriteLine(“Names[4] : “ + names[4]);
}
}
}
|
▼ 위 예제의 실행 결과입니다.
- 배열 인덱스 1, 4에 있는 요소의 값을 가져옵니다. 두 번째, 다섯 번째 요소가 이에 해당합니다.
C# 배열의 길이(인덱스의 크기) 가져오기
▶ 아래 예제는 배열의 길이(인덱스 크기)를 가져오는 예제입니다.
- arrayName.Length : 배열의 길이를 정수 값으로 반환 합니다.
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string[] names = { “LEE”, “KIM”, “PARK”, “SON”, “SHIN” };
int len = names.Length;
Console.WriteLine(“Length of array : “ + len);
}
}
}
|
▼ 위 예제의 실행 결과입니다.
- 배열의 요소가 5개 있음을 보여줍니다. 즉, 배열 요소의 총 개수를 알려줍니다.
C# 배열의 인덱스 범위를 벗어난 인덱스를 액세스 할 때 오류 발생
▶ 만약 배열을 액세스 할 때 인덱스 범위를 벗어나면 오류가 발생합니다.
- 아래 예제에서 names 배열의 인덱스 범위는 0에서 4입니다.
- 이 범위를 벗어난 인덱스로 액세스 하는 경우 예외 처리가 발생하게 됩니다.
- System.IndexOutOfRangeException: 인덱스가 배열 범위를 벗어났습니다.
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string[] names = { “LEE”, “KIM”, “PARK”, “SON”, “SHIN” };
Console.WriteLine(“Names[6] : “ + names[6]);
}
}
}
|
▼ 위 예제의 실행 결과입니다. System.IndexOutOfRangeException 오류가 발생합니다.
C#에서 배열(Array)을 처리하는 일반적인 예제 3가지
▶ C#에서 배열(Array)를 처리하는 방법은 for 문, while 문, foreach 문을 주로 사용해서 처리하게 됩니다.
- 아래 예제는 동일한 결과를 처리하는 for, while, foreach 문에 대한 예제입니다.
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string[] names = { “LEE”, “KIM”, “PARK”, “SON”, “SHIN” };
//for문 사용 예제
for (int index = 0; index < names.Length; index++)
{
Console.WriteLine(names[index]);
}
//while문 사용 예제
int index = 0;
while (index < names.Length)
{
Console.WriteLine(names[index]);
index++;
}
//foreach문 사용 예제
foreach (string name in names)
{
Console.WriteLine(name);
}
}
}
}
|
▼ 위 예제에서 for문, while문, foreach문 각각에 대해 동일한 결과를 아래와 같이 보여줍니다.
마무리
C# 프로그램을 개발할 때 배열(Array)을 적당하게 활용하면 프로그램을 한결 간결하게 구현할 수 있습니다.
생각보다 배열 사용이 어렵지 않다는 것을 이 글을 통해 알 수 있습니다.
C# 프로그램 개발 뿐만 아니라 자바(JAVA)나 파이썬 같은 다른 개발 언어에서도 배열을 사용해 보시길 권해드립니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
이 글이 도움이 되었기를 바랍니다. ^-^