C #에서 배열의 크기 (길이 / 항목 수)를 어떻게 확인할 수 있습니까?
C #에서 배열의 크기 (길이 / 항목 수)를 어떻게 확인할 수 있습니까?
답변:
1 차원 배열 인 a경우
a.Length
의 요소 수를 제공합니다 a.
경우 b직사각형 다차원 배열 (예를 들면, int[,] b = new int[3, 5];)
b.Rank
차원 수 (2)를 제공하고
b.GetLength(dimensionIndex)
주어진 차원의 길이를 가져옵니다 (차원에 대한 0 기반 인덱싱-따라서 b.GetLength(0)3이고 b.GetLength(1)5 임).
자세한 내용은 System.Array 설명서 를 참조하십시오.
@Lucero가 주석에서 지적했듯이 "들쭉날쭉 한 배열"이라는 개념이 있습니다. 이것은 실제로 (일반적으로 1 차원) 배열의 1 차원 배열에 지나지 않습니다.
예를 들어, 다음을 가질 수 있습니다.
int[][] c = new int[3][];
c[0] = new int[] {1, 2, 3};
c[1] = new int[] {3, 14};
c[2] = new int[] {1, 1, 2, 3, 5, 8, 13};
3 개의 멤버는 c모두 길이가 다릅니다. 이 경우, 이전 c.Length의 요소의 개수 나타내는 것 c(3)과 c[0].Length, c[1].Length그리고 c[2].Length3, 2, 7을 각각 일 것이다.
int[][];-)
[,]및 사이의 구분은 [][]모든 .NET 초보자에게 명확하지 않은 것처럼 보이므로 [][]답변 의미에서 다차원 배열이 아니라는 점에 주목할 가치가 있습니다 .
b.GetLength[0] is 3 and b.GetLength[1] is 5있어야한다 b.GetLength(0) and b.GetLength(1).
Array 에 대한 설명서를 볼 수 있습니다. 이 질문에 대한 답을 찾을 수 있습니다.
이 특별한 경우에는 Length 가 필요할 것입니다 .
int sizeOfArray = array.Length;
그러나 이것은 매우 기본적인 질문이고 당신은 의심 할 여지없이 당신에게 대답을 말하는 것보다 더 많은 것을 가지고 있기 때문에 나는 당신에게 대답을 찾는 방법을 당신에게 말하고 싶습니다.
Visual Studio Intellisense
변수 이름을 입력하고 .키를 누르면 해당 개체에서 사용할 수있는 모든 메서드, 속성, 이벤트 등의 목록이 표시됩니다. 회원을 강조 표시하면 회원이하는 일에 대한 간략한 설명이 제공됩니다.

F1을 누릅니다.
원하는 작업을 수행 할 수있는 메서드 나 속성을 찾았지만 확실하지 않은 경우 커서를 그 위로 이동하고 F1 키를 눌러 도움을받을 수 있습니다. 여기에 훨씬 더 자세한 설명과 관련 정보에 대한 링크가 있습니다.
검색
검색어 size of array in C#는 질문에 대한 답변 등을 알려주는 많은 링크를 제공합니다. 프로그래머가 배워야하는 가장 중요한 기술 중 하나는 정보를 찾는 방법입니다. 특히 이전에 동일한 질문을 한 적이있는 경우 직접 답을 찾는 것이 더 빠릅니다.
튜토리얼 사용
C #을 배우기 시작했다면 튜토리얼을 따라 가기가 더 쉬울 것입니다. MSDN 에서 C # 자습서 를 추천 할 수 있습니다 . 책을 원한다면 Essential C #을 추천 합니다.
스택 오버플로
스스로 답을 찾을 수 없다면 Stack Overflow에 질문을 올려주세요. 하지만 먼저 답을 찾기 위해 노력했음을 보여 주신다면 감사하겠습니다.
1 차원 배열의 경우
int[] listItems = new int[] {2,4,8};
int length = listItems.Length;
다차원 배열 용
int length = listItems.Rank;
1 차원의 크기를 얻으려면
int length = listItems.GetLength(0);
Rank속성은 항목 수를 반환하지 않고 차원 수를 반환합니다.
Length, Rank, GetLength)
지금까지 놓친 것은 갑자기 짜증이 나는 것입니다.
배열 내부의 항목 수를 어떻게 알 수 있습니까? 가 .Length동일.Count 목록의?
대답은 다음과 같습니다. 생성 된 X 유형의 배열에 넣은 X 유형 항목의 양은 new X[number] 직접 휴대해야합니다 !
예 : 카운터 사용 : int countItemsInArray = 0그리고 countItemsInArray++배열에 대한 모든 할당에 대해.
(방금으로 생성 된 배열 new X[number]에는 numberX 유형의 항목 (참조)에 대한 모든 공간이 이미 할당되어 있습니다. 예를 들어 (if number= 100 및 변수 이름 = a) 와 같이 첫 번째 할당으로 내부의 모든 위치에 할당 할 수 있습니다 a[50] = new X();.
C #이 생성시 배열 내부의 각 장소의 초기 값을 지정하는지 여부를 모르겠습니다. 그렇지 않은 경우 또는 비교할 수없는 초기 값 (사용자가 배열에 넣은 값일 수 있으므로), 순서대로 시작하지 않으면 이미 할당 한 배열 내부의 위치를 추적해야합니다 0(이 경우 countItemsInArray할당되는 것 보다 작은 모든 위치 ).
귀하의 질문 에서 배열의 크기 (길이 / 항목 수) 에서 / 가 "대안"또는 "나누기"를 의미 하는지 여부에 따라 후자는 여전히 다루어야합니다 ( "항목 수"는 방금 " 항목의 양 "및 기타 항목 .Length의 가치에 해당하는number 위 코드 ) :
C #에는 sizeof연산자 ( https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/sizeof )가 있습니다. 내장 유형 (예 : int)에 사용하는 것이 안전합니다 (변수가 아닌 유형에서만 작동). 따라서 b유형 배열 의 크기 ( int바이트)는입니다 b.Length * sizeof(int).
(위에서 언급 한 것처럼 배열의 모든 공간이 이미 생성시 할당되고 sizeof유형에 대해서만 작업하기 때문에 sizeof(variable)/sizeof(type)추적없이 항목의 양을 산출하거나 같은 코드 가 작동 하지 않습니다 .)