0

次の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 ];
4

2 に答える 2

2

あなたint[,,]は 3 次元配列ですが、2 次元データしか扱っていないようです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;
}
于 2013-09-20T16:09:30.733 に答える
0

私があなたを正しく理解していれば (よくわかりません)、リストに含まれる特定の座標のポイントを表す 3D 配列が必要なようです。それがあなたのやりたいことなら:

for(int i = 0; i < lst.Count; i++)
    array_t[lst[i].a, lst[i].b, lst[i].c] = 1;

配列の残りの部分はゼロで埋められます。

于 2013-09-20T16:09:08.337 に答える