3D 배열의 올바른 사용법을 이해하는 데 문제가 있습니다. C#을 사용하고 있습니다. 나의 주된 혼란은 어느 색인이 Z 색인인지에 관한 것이다. 불행히도, 나는 많은 인터넷 검색을 해왔지만 대부분의 정보는 2D 배열에 관한 것입니다. 의 경우에, 해당 가이드에 따라 https://www.youtube.com/watch?v=Eqo552n1DSc어떤 인덱스가 3D 배열의 Z 인덱스입니까
: YouTube에서 사람은, 그러나, 제 3 인덱스 Z이었다라고
public string[,,] array3DString = new string[2, 5, 6];
2 =의 X, 5 = y 및 6 = Z.
처음에 이것은 의미가 있었지만 시각적으로 이해할 수 있도록 루프를 통해 배열을 채우려고했습니다. 시각적으로 볼 때 도움이됩니다. 그래서 나는이 간단한 프로그램 작성 :
class Test
{
public string[,,] array3DString = new string[2, 5, 5];
public void SetArray3DString()
{
for (int zIndex = 0; zIndex < 2; zIndex++)
{
for (int r = 0; r < 5; r++)
{
for (int c = 0; c < 5; c++)
{
array3DString[zIndex, r, c] = "z" + zIndex + "r" + r + "c" + c;
}
}
}
}
public void PrintArray3DString()
{
for (int zIndex = 0; zIndex < 2; zIndex++)
{
Console.WriteLine("Z Index - " + zIndex);
for (int r = 0; r < 5; r++)
{
for (int c = 0; c < 5; c++)
{
if (c < 4)
{
Console.Write(array3DString[zIndex, c, r] + ",");
}
else
{
Console.WriteLine(array3DString[zIndex, c, r]);
}
}
}
}
}
}
class Program
{
static void Main(string[] args)
{
Test newTest = new Test();
newTest.SetArray3DString();
newTest.PrintArray3DString();
while (true);
}
}
내가 루프와 3 차원 배열을 반복하려고 할 때 첫 번째 인덱스는 Z로, 그것은 더 많은 이해를 한 것으로 나에게 보였다을 물론, 외부 때문에 루프는 마지막으로 색인을 생성합니다. 출력은 다음과 같습니다.
Z Index - 0
z0r0c0,z0r1c0,z0r2c0,z0r3c0,z0r4c0
z0r0c1,z0r1c1,z0r2c1,z0r3c1,z0r4c1
z0r0c2,z0r1c2,z0r2c2,z0r3c2,z0r4c2
z0r0c3,z0r1c3,z0r2c3,z0r3c3,z0r4c3
z0r0c4,z0r1c4,z0r2c4,z0r3c4,z0r4c4
Z Index - 1
z1r0c0,z1r1c0,z1r2c0,z1r3c0,z1r4c0
z1r0c1,z1r1c1,z1r2c1,z1r3c1,z1r4c1
z1r0c2,z1r1c2,z1r2c2,z1r3c2,z1r4c2
z1r0c3,z1r1c3,z1r2c3,z1r3c3,z1r4c3
z1r0c4,z1r1c4,z1r2c4,z1r3c4,z1r4c4
내가 기대하는 바가 있습니다. 마지막 색인 Z를 만들려고 할 때 혼란 스러웠습니다.
그래서 내가 맞습니까? 아니면 Youtube 비디오 오른쪽에있는 사람입니까? 어떤 색인이 Z이어야하며 그 이유는 무엇입니까? 그건 상관 없니?
참고로이 사이트도 시도해 보았습니다. https://www.tutorialspoint.com/csharp/csharp_multi_dimensional_arrays.htm 하지만 다시 주로 2D 배열에 초점을 맞추었고이 간단한 질문에 대답하지 않았습니다.
미리 도움을 주셔서 감사합니다.
그럼 내가 Z 지수를 어느 것이 고려해도 상관 없다고 말하는 것입니까? – Simflare
그리고 예, 시각적으로 올바르게 보이도록 그렇게 인쇄했습니다. 신속한 회신을 위해 건배! – Simflare
개인적으로 나는이 목적을 위해 다차원 배열을 피할 것이다. 차라리 한 차원 배열을 사용하고 싶습니다. 오프셋을 계산하려면'((width * height) * z) + (width * y) + x'하지만 moslty는 선형 스캔을 수행합니다. –