집 >백엔드 개발 >C#.Net 튜토리얼 >C#의 배열
배열 개요
배열은 동일한 유형의 여러 변수를 포함하는 데이터 구조입니다. 배열은 유형을 사용하여 선언됩니다.
배열에는 다음과 같은 속성이 있습니다.
배열은 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 중국어 웹사이트를 주목하세요!