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].Length
3, 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]
에는 number
X 유형의 항목 (참조)에 대한 모든 공간이 이미 할당되어 있습니다. 예를 들어 (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)
추적없이 항목의 양을 산출하거나 같은 코드 가 작동 하지 않습니다 .)