如何将列表转换为int [] []

问题描述 投票:0回答:3

我有一个类别片段,我定义每个片断形状。

myShape.Add(new piece
        {
            Height = 3,
            Width = 2,
            Name = "3x2 L TopRight",
            Size = 4,
            Shape = new int[][] {
                        new int[] { 1, 0 },
                        new int[] { 1, 0 },
                        new int[] { 1, 1 }
                    }
        });

但我手工制作这些形状,现在我实时阅读这些作品,所以我创造了类似的东西

List<int[]> virtualRow = new List<int[]>();
virtualRow.Add(new int[] { 1, 0 });
virtualRow.Add(new int[] { 1, 0 });
virtualRow.Add(new int[] { 1, 1 });

那么如何使用virtualRow创建Shape?

我尝试过类似的东西

Shape = new int[][] { virtualRow.ToArray() }

但是说

无法将类型'int [] []'隐式转换为'int []'

c# .net
3个回答
8
投票

virtualRow.ToArray()已经是一系列int值的数组。您不需要创建一个新的int数组数组并将其添加到它。

所有你需要的是:

Shape = virtualRow.ToArray(),

3
投票

virtualRow是整数数组的List,因此要获得整数数组的数组,只需编写:

Shape = virtualRow.ToArray();

... List.ToArray()的返回类型是T []。

你的代码是错误的,因为它试图将int[][]添加到Shape而不是创建Shape作为int[][]


1
投票

您想要执行以下操作:

Shape  = virtualRow.ToArray();

由于virtualRow已经是一个数组列表。 ToArray函数为你的int[][]创建一个virtualRow对象,你需要做的就是将它存储到形状中。你要做的是创建一个矩阵,其中是ToArray函数的结果。这样你就可以存储函数的结果,它可以为你提供你想要的东西。

© www.soinside.com 2019 - 2024. All rights reserved.