从 list{int, int, int} 循环填充 3D 数组
本文关键字:int 填充 3D 数组 循环 list | 更新日期: 2023-09-27 18:32:07
>我有一个保存数据list{int a,int b,int c}
,例如
a b c
12 23 45
24 45 34
44 56 77
12 34 11
98 35 33
...
我想将数据放在 3 个数组中所以如果我有 3 个单独的数组,我会做
int[] a = new int[lst.Count];
int[] b = new int[lst.Count];
int[] c = new int[lst.Count];
for (int i = 0; i < lst.Count; i++)
{
a[i] = lst[i].a;
b[i] = lst[i].b;
c[i] = lst[i].c;
}
现在如何将list{int, int, int}
复制到 3D 数组?
int size = lst.Count;
int[, ,] array_t = new int[size , size , size ];
您的int[,,]
是一个三维数组,但似乎您只处理二维数据,因此int[,]
就可以了:
int[,] array_t = new int[lst.Count,3];
for (int i = 0; i < lst.Count; i++)
{
array_t[i,0] = a[i];
array_t[i,1] = b[i];
array_t[i,2] = c[i];
}
或者跳过中间数组:
int[,] array_t = new int[lst.Count,3];
for (int i = 0; i < lst.Count; i++)
{
array_t[i,0] = lst[i].a;
array_t[i,1] = lst[i].b;
array_t[i,2] = lst[i].c;
}
如果我理解正确(我不确定),您似乎想要一个 3d 数组来表示列表中包含的某些坐标处的点。如果这是您想要执行的操作:
for(int i = 0; i < lst.Count; i++)
array_t[lst[i].a, lst[i].b, lst[i].c] = 1;
数组的其余部分将用零填充。