배열이 정의되어 있습니다.
int [,] ary;
// ...
int nArea = ary.Length; // x*y or total area
이것은 모두 좋고 훌륭하지만이 배열의 너비 x
와 y
크기가 개별적으로 얼마나 넓은 지 알아야합니다 . 즉, ary.Length
12를 반환 할 수 있지만 배열이 4 높이와 3 너비 또는 6 높이와 2 너비라는 것을 의미합니까?
이 정보를 어떻게 검색 할 수 있습니까?
답변
검색하려는 차원의 인덱스와 함께 Array.GetLength 를 사용 합니다.
답변
길이 대신 GetLength ()를 사용하십시오.
int rowsOrHeight = ary.GetLength(0);
int colsOrWidth = ary.GetLength(1);
답변
// Two-dimensional GetLength example.
int[,] two = new int[5, 10];
Console.WriteLine(two.GetLength(0)); // Writes 5
Console.WriteLine(two.GetLength(1)); // Writes 10
답변
다른 게시물 중 일부는 어떤 차원이 어떤 것인지 혼동합니다. 다음은 C #에서 2D 배열이 작동하는 방식을 보여주는 NUNIT 테스트입니다.
[Test]
public void ArraysAreRowMajor()
{
var myArray = new int[2,3]
{
{1, 2, 3},
{4, 5, 6}
};
int rows = myArray.GetLength(0);
int columns = myArray.GetLength(1);
Assert.AreEqual(2,rows);
Assert.AreEqual(3,columns);
Assert.AreEqual(1,myArray[0,0]);
Assert.AreEqual(2,myArray[0,1]);
Assert.AreEqual(3,myArray[0,2]);
Assert.AreEqual(4,myArray[1,0]);
Assert.AreEqual(5,myArray[1,1]);
Assert.AreEqual(6,myArray[1,2]);
}
답변
ary.GetLength(0)
ary.GetLength(1)
2 차원 배열 용
답변
다음과 같이 이것을 사용하여 지정된 각 차원에서 마지막 요소의 색인을 얻는 것을 고려할 수도 있습니다.
int x = ary.GetUpperBound(0);
int y = ary.GetUpperBound(1);
인덱스의 값은 0을 기준으로합니다.