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

3
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);

我希望将trisBottom、Up等全部添加到tris列表中,该如何实现?


你的问题不够清晰。tris是什么?你想要什么输出? - Gilad Green
公共列表<int> tris = 新的列表<int>(); - GPlayer
4个回答

5
当使用 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);

1
听起来你想要的是 List.AddRange
tris.AddRange(trisFront);

0

当tris是一个GenericList时,你可以直接使用:

tris.AddRange(trisFront);

如果是不同的数据类型,请让我知道。


-1
    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);

运行完美


2
如果其中一个答案帮助您解决了问题,正确的做法是接受该答案(而不是发布一个新答案来解决问题)。 - Gilad Green

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接