C#에서 배열을 초기화하는 방법

C Eseo Baeyeol Eul Chogihwahaneun Bangbeob



C#에서 배열은 동일한 데이터 유형의 요소를 저장하기 위한 컨테이너 역할을 합니다. 배열을 만들 때 요소로 배열을 초기화하는 방법에는 여러 가지가 있습니다. 이 문서에서는 C#에서 배열을 초기화하는 다양한 방법을 자세히 살펴보고 각 접근 방식에 대한 포괄적인 탐색을 제공합니다.

C#에서 배열을 초기화하는 방법

배열은 연속 메모리 위치에 동일한 데이터 유형의 요소 모음을 저장하고 조작할 수 있게 해주는 컴퓨터 프로그래밍의 필수 데이터 구조입니다. 다음은 C#에서 배열을 초기화하는 몇 가지 방법입니다.







1: 어레이 이니셜라이저 구문을 사용하여 어레이 초기화

배열을 초기화하는 가장 간단한 방법은 배열 초기화 구문을 활용하는 것입니다. 배열 요소를 쉼표로 구분하여 중괄호로 묶는 작업이 포함되기 때문입니다. 예를 들면 다음과 같습니다.



정수 [ ] 숫자 = { 1 , 2 , , 4 , 5 } ;


이 코드에서는 '숫자'라는 정수 배열을 만들고 1에서 5까지의 값으로 초기화합니다. 마찬가지로 동일한 구문을 사용하여 다차원 배열을 초기화할 수 있습니다.



정수 [ , ] myMultiDimensionalArray = { { 1 , 2 } , { , 4 } , { 5 , 6 } } ;


다음은 이니셜라이저 구문을 사용하여 C#에서 1D 및 2D 배열을 초기화하는 예제 코드입니다.





시스템 사용;

클래스 배열
{
정적 무효 메인 ( [ ] 인수 )
{
// 이니셜라이저 구문을 사용하여 1D 배열 초기화
정수 [ ] 배열1D = { 1 , 2 , , 4 , 5 } ;
콘솔.쓰기줄 ( 'array1D의 값:' ) ;
~을 위한 ( 정수 i = 0 ; 나 < array1D.길이; 나++ ) {
콘솔.쓰기줄 ( 배열1D [ ] ) ;
}
// 이니셜라이저 구문을 사용하여 2D 배열 초기화
정수 [ , ] 배열2D = { { 1 , 2 } , { , 4 } , { 5 , 6 } } ;
콘솔.쓰기줄 ( 'array2D의 값:' ) ;
~을 위한 ( 정수 i = 0 ; 나 < array2D.GetLength ( 0 ) ; 나++ ) {
~을 위한 ( 정수 j = 0 ; 제이 < array2D.GetLength ( 1 ) ; j++ ) {
콘솔.쓰기줄 ( '({0}, {1}): {2}' , i, j, array2D [ 나는, j ] ) ;
}
}
}
}


이 코드에서는 값 1, 2, 3, 4 및 5를 사용하여 array1D라는 1차원 정수 배열을 초기화하기 위해 초기화 구문을 사용하고 있습니다.

또한 {1, 2}, {3, 4} 및 {5, 6} 값으로 array2D라는 2차원 정수 배열을 초기화하기 위해 초기화 구문을 사용하고 있습니다.

그런 다음 추가 for 루프를 사용하여 각 배열의 각 요소를 반복하고 해당 값을 콘솔에 출력합니다.

2: new 키워드를 사용하여 배열 초기화

배열을 초기화하는 추가 방법은 다음을 활용하는 것입니다. 새로운 예어. 여기에는 배열 크기를 대괄호 안에 지정하고 뒤에 new 키워드를 지정한 다음 배열 요소의 데이터 유형을 지정하는 작업이 포함됩니다. 예를 들어:

정수 [ ] 숫자 = 새로운 정수 [ 5 ] ;


이 코드는 크기가 5인 numbers라는 정수 배열을 만들고 모든 요소를 ​​기본값(정수 배열의 경우 0)으로 초기화합니다.

다음은 C#에서 new 키워드를 사용하여 다차원 배열을 초기화하는 구문입니다.

< 유형 > [ , ] < 배열 이름 > = 새로운 < 유형 > [ < 길이1 > , < 길이2 > , ... ] { { < 초기값 > } } ;


이 구문에서 은 배열 요소의 데이터 유형이고, 은 배열의 이름이고, , 등은 각 차원의 배열 길이이고, 배열 요소의 초기 값입니다.

다음은 이 구문을 사용하여 2차원 정수 배열을 초기화하는 방법의 예입니다.

정수 [ , ] myArray = 새 정수 [ , 2 ] { { 1 , 2 } , { , 4 } , { 5 , 6 } } ;


이 예제에서는 new 키워드를 사용하여 3행 2열로 myArray라는 2d 정수 배열을 초기화합니다. 또한 이중 중괄호 구문을 사용하여 배열의 각 요소에 대한 초기 값을 제공하고 있습니다. 값은 각 행의 요소에 해당하는 {1, 2}, {3, 4} 및 {5, 6}입니다.

다음은 각 배열의 값을 출력하는 코드와 함께 new 키워드를 사용하여 C#에서 1차원 및 2차원 배열을 모두 초기화하는 방법의 예입니다.

시스템 사용;

클래스 배열
{
정적 무효 메인 ( [ ] 인수 )
{
// 초기화 중 1 -차원 배열
정수 [ ] myArray1D = 새 정수 [ ] { 1 , 2 , , 4 , 5 } ;
콘솔.쓰기줄 ( 'myArray1D의 값:' ) ;
~을 위한 ( 정수 i = 0 ; 나 < myArray1D.길이; 나++ )
{
콘솔.쓰기줄 ( myArray1D [ ] ) ;
}
// 초기화 중 2 -차원 배열
정수 [ , ] myArray2D = 새 정수 [ , ] { { 1 , 2 } , { , 4 } , { 5 , 6 } } ;
콘솔.쓰기줄 ( 'myArray2D의 값:' ) ;
~을 위한 ( 정수 i = 0 ; 나 < myArray2D.GetLength ( 0 ) ; 나++ )
{
~을 위한 ( 정수 j = 0 ; 제이 < myArray2D.GetLength ( 1 ) ; j++ )
{
콘솔.쓰기줄 ( '({0}, {1}): {2}' , i, j, myArray2D [ 나는, j ] ) ;
}
}
}
}


이 코드에서는 new 키워드를 사용하여 라는 1차원 정수 배열을 초기화합니다. myArray1D 1, 2, 3, 4, 5 값과 2차원 정수 배열 myArray2D {1, 2}, {3, 4} 및 {5, 6} 값으로.

그런 다음 for 루프를 사용하여 각 배열의 각 요소를 반복하고 그 값을 콘솔에 출력합니다. 2차원 배열의 경우 다음을 사용하고 있습니다. GetLength() 행과 열의 수를 결정하고 중첩된 for 루프를 사용하여 각 요소를 반복합니다.

3: 루프를 사용하여 어레이 초기화

루프를 사용하여 배열을 초기화할 수도 있습니다. 한 가지 방법은 배열을 반복하고 각 요소에 값을 할당할 수 있는 for 루프를 사용하는 것입니다.

정수 [ ] 숫자 = 새로운 정수 [ 5 ] ;
~을 위한 ( 정수 i = 0 ; 나 < 숫자. 길이; 나++ )
{
숫자 [ ] = 내가 + 1 ;
}


이 코드는 크기가 5인 numbers라는 정수 배열을 만들고 각 요소에 해당 인덱스에 1을 더한 값을 할당합니다. 다음은 루프를 사용하여 C#에서 2차원 정수 배열을 초기화하는 방법의 예입니다.

정수 [ , ] myArray = 새 정수 [ , 2 ] ;
~을 위한 ( 정수 i = 0 ; 나 < ; 나++ )
{
~을 위한 ( 정수 j = 0 ; 제이 < 2 ; j++ )
{
myArray [ 나는, j ] = i + j;
}
}


이 예에서는 중첩된 for 루프를 사용하여 라는 2차원 정수 배열의 각 요소를 반복합니다. myArray , 3개의 행과 2개의 열이 있습니다. 각 요소에 대해 i + j 표현식을 사용하여 해당 값을 행 및 열 인덱스의 합으로 설정합니다.

다음은 루프를 사용하여 C#에서 1차원 및 2차원 배열을 모두 초기화하는 방법과 각 배열의 값을 출력하는 코드의 예입니다.

시스템 사용;

클래스 배열
{
정적 무효 메인 ( [ ] 인수 )
{
// 초기화 중 1 -루프를 사용한 차원 배열
정수 [ ] myArray1D = 새 정수 [ 5 ] ;
~을 위한 ( 정수 i = 0 ; 나 < myArray1D.길이; 나++ )
{
myArray1D [ ] = 내가 + 1 ;
}
콘솔.쓰기줄 ( 'myArray1D의 값:' ) ;
~을 위한 ( 정수 i = 0 ; 나 < myArray1D.길이; 나++ )
{
콘솔.쓰기줄 ( myArray1D [ ] ) ;
}
// 초기화 중 2 -중첩 루프를 사용하는 차원 배열
정수 [ , ] myArray2D = 새 정수 [ , 2 ] ;
~을 위한 ( 정수 i = 0 ; 나 < ; 나++ )
{
~을 위한 ( 정수 j = 0 ; 제이 < 2 ; j++ )
{
myArray2D [ 나는, j ] = i + j;
}
}
콘솔.쓰기줄 ( 'myArray2D의 값:' ) ;
~을 위한 ( 정수 i = 0 ; 나 < ; 나++ )
{
~을 위한 ( 정수 j = 0 ; 제이 < 2 ; j++ )
{
콘솔.쓰기줄 ( '({0}, {1}): {2}' , i, j, myArray2D [ 나는, j ] ) ;
}
}
}
}


이 코드에서는 for 루프를 사용하여 myArray1D라는 1차원 정수 배열을 값 1, 2, 3, 4, 5로 초기화합니다. 또한 중첩 for 루프를 사용하여 라는 2차원 정수 배열을 초기화합니다. i + j 표현식을 사용하여 값이 {0, 1}, {1, 2} 및 {2, 3}인 myArray2D.

그런 다음 추가 for 루프를 사용하여 각 배열의 각 요소를 반복하고 해당 값을 콘솔에 출력합니다.

4: Array.Copy()를 사용하여 배열 초기화

배열을 초기화하는 또 다른 방법은 Array.Copy() 함수를 이용하는 것입니다. 여기에는 원하는 요소로 소스 배열을 만든 다음 대상 배열에 복사하는 작업이 포함됩니다. 예를 들어:

정수 [ ] 원천 = { 1 , 2 , , 4 , 5 } ;
정수 [ ] 대상 = 새 정수 [ 소스.길이 ] ;
배열.복사 ( 원천 , 대상, 소스.길이 ) ;


이 코드는 값이 1에서 5까지인 source라는 정수 배열을 만들고, source와 크기가 같은 target이라는 새 정수 배열을 만든 다음, 소스에서 대상으로 요소를 복사합니다.

C#에서 Array.Copy를 사용하여 2차원 정수 배열을 초기화하는 방법을 보여주는 예제를 보여드리겠습니다.

정수 [ , ] 소스 배열 = { { 1 , 2 } , { , 4 } , { 5 , 6 } } ;
정수 [ , ] destinationArray = 새로운 int [ , 2 ] ;

배열.복사 ( sourceArray, 대상 배열, sourceArray.Length ) ;


이 예에는 다음과 같은 2차원 정수 배열이 있습니다. 소스 배열 3개의 행과 2개의 열이 있습니다. 우리는 사용하고 있습니다 배열.복사() sourceArray의 내용을 destinationArray라는 새로운 2차원 정수 배열로 복사합니다. 이 배열에도 3개의 행과 2개의 열이 있습니다.

그만큼 배열.복사() 방법이 걸립니다 세 가지 인수 : 소스 배열 , 대상 배열 , 그리고 길이 복사할 데이터의 이 경우 전체 내용을 복사합니다. 소스 배열 ~ 안으로 목적지배열 , 그래서 우리는 통과 sourceArray.길이 세 번째 인수로.

사용하실 수 있으니 참고하세요 배열.복사() 소스 및 대상 배열의 차원 수가 동일하고 각 차원에서 동일한 크기를 갖는 한 임의의 차원 수로 배열을 초기화합니다.

또한 다음 사항을 명심하십시오. 배열.복사() 소스 배열의 얕은 복사를 수행합니다. 즉, 소스 배열에 참조 유형이 포함된 경우 참조는 복사되지만 개체 자체는 복제되지 않습니다.

다음은 다음을 사용하는 전체 코드입니다. 배열.복사() C#에서 배열을 초기화하는 함수:

시스템 사용;

클래스 배열
{
정적 무효 메인 ( [ ] 인수 )
{
// 초기화 중 1 -Array.Copy를 사용한 차원 배열
정수 [ ] sourceArray1D = { 1 , 2 , , 4 , 5 } ;
정수 [ ] destinationArray1D = 새 정수 [ 5 ] ;
배열.복사 ( sourceArray1D, destinationArray1D, sourceArray1D.Length ) ;
콘솔.쓰기줄 ( 'destinationArray1D의 값:' ) ;
~을 위한 ( 정수 i = 0 ; 나 < destinationArray1D.Length; 나++ ) {
콘솔.쓰기줄 ( 목적지배열1D [ ] ) ;
}
// 초기화 중 2 -Array.Copy를 사용한 차원 배열
정수 [ , ] sourceArray2D = { { 1 , 2 } , { , 4 } , { 5 , 6 } } ;
정수 [ , ] destinationArray2D = 새 정수 [ , 2 ] ;
배열.복사 ( sourceArray2D, 목적지Array2D, sourceArray2D.Length ) ;
콘솔.쓰기줄 ( 'destinationArray2D의 값:' ) ;
~을 위한 ( 정수 i = 0 ; 나 < destinationArray2D.GetLength ( 0 ) ; 나++ ) {
~을 위한 ( 정수 j = 0 ; 제이 < destinationArray2D.GetLength ( 1 ) ; j++ ) {
콘솔.쓰기줄 ( '({0}, {1}): {2}' , i, j, 목적지Array2D [ 나는, j ] ) ;
}
}
}
}


이 코드에서 우리는 배열.복사() sourceArray1D라는 소스 배열에서 값 1, 2, 3, 4, 5를 사용하여 destinationArray1D라는 1차원 정수 배열을 초기화합니다.

우리는 또한 사용하고 있습니다 배열.복사() sourceArray2D라는 소스 배열에서 값 {1, 2}, {3, 4} 및 {5, 6}을 사용하여 destinationArray2D라는 2차원 정수 배열을 초기화합니다.

그런 다음 추가 for 루프를 사용하여 각 배열의 각 요소를 반복하고 해당 값을 콘솔에 출력합니다.

결론

이 기사에서는 C#에서 배열을 초기화하는 다양한 방법을 살펴보았습니다. new 키워드를 사용하고 루프를 사용하여 배열을 초기화하고 Array.Copy() 메서드를 사용하여 배열 초기화 구문을 다루었습니다. 특정 사용 사례에 따라 이러한 각 방법에는 고유한 장점과 단점이 있습니다. 이러한 다양한 접근 방식에 익숙해지면 특정 요구 사항에 가장 적합한 것을 선택할 수 있습니다.