C#의 배열

高洛峰
高洛峰원래의
2016-12-16 14:14:161363검색

배열 개요
배열은 동일한 유형의 여러 변수를 포함하는 데이터 구조입니다. 배열은 유형을 사용하여 선언됩니다.
배열에는 다음과 같은 속성이 있습니다.

배열은 1차원, 다차원 또는 인터리브될 수 있습니다.

숫자 배열 요소의 기본값은 0으로 설정되고 참조 요소의 기본값은 null로 설정됩니다.

가변 배열은 배열의 배열이므로 해당 요소는 참조 유형이며 null로 초기화됩니다.

배열은 0부터 색인이 지정됩니다. n 요소가 있는 배열은 0부터 n-1까지 색인이 지정됩니다.

배열 요소는 배열 유형을 포함하여 모든 유형이 될 수 있습니다.

배열 유형은 추상 기본 유형 Array에서 파생된 참조 유형입니다. 이 형식은 IEnumerable 및 IEnumerable을 구현하므로 C#의 모든 배열에서 foreach 반복을 사용할 수 있습니다.

C# 배열은 0부터 인덱스가 지정됩니다. 즉, 배열 인덱스는 0부터 시작됩니다. 배열은 대부분의 다른 인기 언어에서 작동하는 방식과 유사하게 C#에서 작동합니다. 그러나 주목해야 할 몇 가지 차이점이 있습니다.
배열을 선언할 때 식별자가 아닌 유형 뒤에 대괄호([])를 사용해야 합니다. C#에서는 식별자 뒤에 대괄호를 넣는 것은 잘못된 구문입니다.

int[] table; // not int table[];

또 다른 세부 사항은 배열의 크기가 해당 유형의 일부가 아니라는 것입니다. 배열을 선언하고 배열 길이에 관계없이 int 객체의 임의 배열을 할당할 수 있습니다.

int[] numbers; // declare numbers as an int array of any size
numbers = new int[10];  // numbers is a 10-element array
numbers = new int[20];  // now it's a 20-element array

배열 선언
C#은 1차원 배열, 다차원 배열(직사각형 배열) 및 배열의 ​​배열(인터리브 배열)을 지원합니다. 다음 예에서는 다양한 유형의 배열을 선언하는 방법을 보여줍니다.
1차원 배열:

int[] numbers;

다차원 배열:

string[,] names;

배열 배열(인터리브):

byte[][] scores;

배열 선언(위 표시)은 실제로 배열을 생성하지 않습니다.

C#에서 배열은 개체이므로 인스턴스화해야 합니다. 다음 예에서는 배열을 만드는 방법을 보여줍니다.
1차원 배열:

int[] numbers = new int[5];

다차원 배열:

string[,] names = new string[5,4];

배열 배열(인터리브):

byte[][] scores = new byte[5][];
for (int x = 0; x < scores.Length; x++) 
{
   scores[x] = new byte[4];
}

대규모 배열도 가능합니다. 예를 들어, 3차원 직사각형 배열을 가질 수 있습니다.

int[,,] buttons = new int[4,5,3];

직사각형 배열과 들쭉날쭉한 배열을 혼합할 수도 있습니다. 예를 들어, 다음 코드는 int 유형의 2차원 배열과 3차원 배열 유형의 1차원 배열을 선언합니다.

int[][,,][,] numbers;

배열 초기화
는 초기 값을 중괄호({})로 묶어 선언 시 배열을 초기화하는 간단하고 직접적인 방법을 제공합니다. 다음 예제에서는 다양한 유형의 배열을 초기화하는 다양한 방법을 보여줍니다.
참고 배열을 선언할 때 초기화되지 않으면 배열 멤버가 자동으로 배열 유형의 기본 초기 값으로 초기화됩니다. 또한 배열이 유형의 필드로 선언되면 유형이 인스턴스화될 때 기본값인 null로 설정됩니다.
1차원 배열

int[] numbers = new int[5] {1, 2, 3, 4, 5};
string[] names = new string[3] {"Matt", "Joanne", "Robert"};

다음과 같이 배열의 크기를 생략할 수 있습니다.

int[] numbers = new int[] {1, 2, 3, 4, 5};
string[] names = new string[] {"Matt", "Joanne", "Robert"};

초기화자가 제공되면 new 연산자도 생략 가능 , 아래와 같이

int[] numbers = {1, 2, 3, 4, 5};
string[] names = {"Matt", "Joanne", "Robert"};

다차원 배열

int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[2, 2] { {"Mike","Amy"}, {"Mary","Albert"} };

배열의 크기는 아래와 같이 생략할 수 있습니다.

int[,] numbers = new int[,] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[,] { {"Mike","Amy"}, {"Mary","Albert"} };

초기 값이 제공되면 아래와 같이 new 연산자를 생략할 수도 있습니다.

int[,] numbers = { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = { {"Mike", "Amy"}, {"Mary", "Albert"} };

인터리브 배열(배열의 배열)
다음 예와 같이 인터리브 배열을 초기화할 수 있습니다.

int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };

첫 번째 배열의 크기는 다음과 같이 생략할 수 있습니다.

int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };

- 또는 -

int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };

초기화가 없다는 점에 유의하세요. 들쭉날쭉한 배열 문법의 요소.

배열 멤버 액세스
배열 멤버 액세스는 직접 수행할 수 있습니다. 예를 들어 다음 코드는 숫자라는 배열을 만든 다음 배열의 다섯 번째 요소에 5를 할당합니다. :

int[] numbers = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
numbers[4] = 5;

다음 코드는 다차원 배열을 선언하고 [1, 1]에 있는 멤버에 5를 할당합니다.

int[,] numbers = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10} };
numbers[1, 1] = 5;

다음은 1차원 jagged 배열을 선언합니다. 두 개의 요소를 포함하는 배열입니다. 첫 번째 요소는 두 개의 정수 배열이고 두 번째 요소는 세 개의 정수 배열입니다.

int[][] numbers = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5}};

다음 명령문은 첫 번째 배열의 첫 번째 요소에 58을 할당하고 첫 번째 요소에 58을 할당합니다. 두 배열의 두 번째 요소에는 667이 할당됩니다.

numbers[0][0] = 58;
numbers[1][1] = 667;

배열은 개체입니다. C#에서 배열은 실제로 개체입니다. System.Array는 모든 배열 유형에 대한 추상 기본 유형입니다. System.Array의 속성과 다른 클래스 멤버를 사용할 수 있습니다. 이러한 사용법의 예는 Length 속성을 사용하여 배열의 길이를 가져오는 것입니다. 다음 코드는 숫자 배열의 길이(5)를 LengthOfNumbers라는 변수에 할당합니다.

int[] numbers = {1, 2, 3, 4, 5};
int LengthOfNumbers = numbers.Length;

System.Array 클래스는 정렬, 검색, 복사와 같은 유용한 다른 메서드/속성을 제공합니다. 배열 방법.

배열에 foreach 사용
C#에서는 foreach 문도 제공합니다. 이 명령문은 배열 요소를 반복하는 간단하고 명확한 방법을 제공합니다.
예를 들어 다음 코드는 숫자라는 배열을 생성하고 foreach 문을 사용하여 배열을 반복합니다.

int[] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0};
foreach (int i in numbers)
{
   System.Console.WriteLine(i);
}

다차원 배열 덕분에 동일한 방법을 사용하여 요소를 반복할 수 있습니다. 예:

int[,] numbers = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}};
foreach(int i in numbers)
{
   Console.Write("{0} ", i);
}

이 예제의 출력은 다음과 같습니다.

9 99 3 33 5 55

그러나 다차원 배열 덕분에 중첩된 for 루프를 사용하면 배열 요소를 더 효과적으로 제어할 수 있습니다.


C# 배열과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.