C# 배열 학습

高洛峰
풀어 주다: 2016-12-16 14:15:32
원래의
1081명이 탐색했습니다.

배열 개요

C# 배열은 0부터 인덱스가 지정됩니다. 즉, 배열 인덱스는 0부터 시작됩니다. 배열은 대부분의 다른 인기 언어에서 작동하는 방식과 유사하게 C#에서 작동합니다. 그러나 주목해야 할 몇 가지 차이점이 있습니다.

배열을 선언할 때 식별자가 아닌 유형 뒤에 대괄호([])를 사용해야 합니다. C#에서는 식별자 뒤에 대괄호를 넣는 것은 잘못된 구문입니다.

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

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

int[] 숫자; // 숫자를 임의 크기의 int 배열로 선언합니다.

numbers = new int[10]; // 숫자는 10개 요소의 배열입니다.

numbers = new int[20]; // 이제 요소가 20개인 배열입니다

배열 선언

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

1차원 배열:

int[] 숫자;

다차원 배열:

string[,] names;

배열 배열(인터리브):

byte[][] Score;

선언 실제로 생성하지 않고 배열(위에 표시된 대로)을 생성합니다. C#에서 배열은 개체(이 자습서의 뒷부분에서 설명)이며 인스턴스화되어야 합니다. 다음 예에서는 배열을 만드는 방법을 보여줍니다.

1차원 배열:

int[] 숫자 = new int[5];

다차원 배열 배열:

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

배열 배열(인터리브):

byte[][] 점수 = 새 바이트[ 5][];
for (int x = 0; x < Score.Length; x++)
{
점수[x] = 새 바이트[4];
}

더 큰 배열을 사용할 수도 있습니다. 예를 들어 3차원 직사각형 배열을 가질 수 있습니다.

int[,,] 버튼 = new int[4,5,3];

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

int[][,,][,] 숫자;
선언 시 초기 값을 중괄호({})로 묶어 배열 초기화

C# 배열을 초기화하는 방법은 간단하고 간단합니다. 다음 예제에서는 다양한 유형의 배열을 초기화하는 다양한 방법을 보여줍니다.

참고 배열을 선언할 때 초기화되지 않으면 배열 멤버가 자동으로 배열 유형의 기본 초기 값으로 초기화됩니다. 또한 배열이 유형의 필드로 선언되면 유형이 인스턴스화될 때 기본값인 null로 설정됩니다.

1차원 배열

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

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

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

다음과 같은 경우 초기값이 제공됩니다. 설정 항목에서는 아래와 같이 new 연산자를 생략할 수도 있습니다.

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

다차원 배열

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

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

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

초기화가 제공되면 다음과 같이 new 연산자를 생략할 수도 있습니다.

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

인터리브 배열(배열의 배열) )

은 다음 예와 같이 가변 배열을 초기화할 수 있습니다.

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

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

int[] [] 숫자 = 새로운 int[][] { 새로운 int[] {2,3,4}, 새로운 int[] {5,6,7,8,9} };

- 또는 -

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

가변 배열의 요소에 대한 초기화 구문이 없다는 점에 유의하세요.

배열 멤버 액세스

배열 멤버에 액세스하는 것은 C/C++에서 배열 멤버에 액세스하는 것과 유사하게 직접 수행할 수 있습니다. 예를 들어, 다음 코드는 숫자라는 배열을 만든 다음 배열의 다섯 번째 요소에 5를 할당합니다.

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

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

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

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

int[][] 숫자 = 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 = 숫자 .Length;

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

배열에 foreach 사용

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

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

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

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

출력

9 99 3 33 5 55

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


C# 배열 학습과 관련된 더 많은 글은 PHP 중국어 홈페이지를 주목해주세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!