Unity C# - 将内置数组添加到列表

本文关键字:添加 列表 数组 内置 Unity | 更新日期: 2023-09-27 18:09:56

int[] trisFront = { 0, 3, 2,  2, 1, 0};
int[] trisRight = { 1, 2, 6,  6, 5, 1 };
int[] trisBack = { 5, 6, 7,  7, 4, 5 };
int[] trisLeft = { 4, 7, 3,  3, 0, 4 };
int[] trisUp = { 3, 7, 6,  6, 2, 3 };
int[] trisBottom = { 4, 0, 1,  1, 5, 4 };
List<int> tris = new List<int>();
tris.Add(trisFront);
tris.Add(trisBack);
tris.Add(trisRight);
tris.Add(trisLeft);
tris.Add(trisUp);
tris.Add(trisBottom);

我想要所有的三底,上...要进入 tris 列表,我该怎么做?

Unity C# - 将内置数组添加到列表

使用 Add 方法时,将 1 个类型为 T 的项目添加到集合中。在您当前的用法中,这意味着tris应该是一个List<int[]>,因为您要添加 int[] 类型的项目。

您应该做的是使用 AddRange 方法而不是 Add - 这会将集合中的所有项目添加到tris列表的末尾:

tris.AddRange(trisFront);
tris.AddRange(trisBack);
tris.AddRange(trisRight);
tris.AddRange(trisLeft);
tris.AddRange(trisUp);
tris.AddRange(trisBottom);

听起来你想要List.AddRange

tris.AddRange(trisFront);

当tris是一个泛型列表时,你可以只使用:

tris.AddRange(trisFront);

如果它是不同的数据类型,请告诉我。

    public List<int> tris = new List<int>();
    int[] trisFront = { 0, 3, 2,  2, 1, 0};
    int[] trisRight = { 1, 2, 6,  6, 5, 1 };
    int[] trisBack = { 5, 6, 7,  7, 4, 5 };
    int[] trisLeft = { 4, 7, 3,  3, 0, 4 };
    int[] trisUp = { 3, 7, 6,  6, 2, 3 };
    int[] trisBottom = { 4, 0, 1,  1, 5, 4 };
    tris.AddRange(trisFront);
    tris.AddRange(trisBack);
    tris.AddRange(trisRight);
    tris.AddRange(trisLeft);
    tris.AddRange(trisUp);
    tris.AddRange(trisBottom);

完美工作