如何将列表转换为 int[][]
本文关键字:int 转换 列表 | 更新日期: 2023-09-27 17:56:56
我有一个类片段,我在其中定义每个片段形状。
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 });
那么如何使用虚拟行创建形状呢?
我尝试类似的东西
Shape = new int[][] { virtualRow.ToArray() }
但是说
无法将类型"int[][]"隐式转换为"int[]"
virtualRow.ToArray()
已经是一个int
值数组。 您不需要创建一个新的整数数组并将其添加到其中。
您所需要的只是:
Shape = virtualRow.ToArray(),
virtualRow 是整数数组的List
,因此要获得整数数组数组,您只需编写:
Shape = virtualRow.ToArray();
。List.ToArray() 的返回类型根据需要为 T[]。
您的代码出错,因为它尝试向Shape
添加int[][]
,而不是将Shape
创建为int[][]
。
您要执行以下操作:
Shape = virtualRow.ToArray();
因为 virtualRow 已经是一个数组列表。ToArray
函数为您的virtualRow
创建一个int[][]
对象,您需要做的就是将其存储为形状。您尝试做的是创建一个矩阵,其中是ToArray
函数的结果。这样,您只需存储函数的结果,该函数即可获得所需的内容。