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

时间:2016-10-02 08:10:52

标签: c# unity3d

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列表中,我该怎么做?

4 个答案:

答案 0 :(得分: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 :(得分:1)

听起来你想要List.AddRange

tris.AddRange(trisFront);

答案 2 :(得分:0)

当tris是GenericList时,你可以使用:

tris.AddRange(trisFront);

如果是不同的DataType,请告诉我。

答案 3 :(得分:-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);

完美运作