如何将一个列表转换为类型为int[][]
的数组,有什么最佳方法?
List<List<int>> lst = new List<List<int>>();
int[][] arrays = lst.Select(a => a.ToArray()).ToArray();
lst.Select(Enumerable.ToArray).ToArray()
进行操作。 - Random832int[,]数组
中进行赋值,这是否可行? - Shekhar Rai for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
array[i, j] = list[i][j];
这样你就会得到一个 object[,]
,其中 N 和 M 分别是外部和内部列表的维度。 - aibarslst.Select(l => l.ToArray()).ToArray()
int[,]
,而不是int[][]
),那么这将更加困难,最好的解决方案可能是使用嵌套的for
循环。int[][] arrays = lst.Select(a => a.ToArray()).ToArray();
没有库函数可以做到这一点。
您需要使用循环来完成此操作。
int[][] newlist = new int[lst.Size][];
for (int i = 0; i < lst.Size; i++)
{
List<int> sublist = lst.ElementAt(i);
newlist[i] = new int[sublis.Size];
for (int j = 0; j < sublist.Size; j++)
{
newlist[i][j] = sublist.ElementAt(j);
}
}
就是这样!
如果您在使用List<List<int>>
时没有任何限制,可以使用List<int[]>
,然后在列表对象末尾使用.ToArray()
将其转换为数组。
首先将List<List<int>>
转换为List<int[]>
的示例:
List<int[]> listOfArray=new List<int[]>();
List<List<int>> yourList=[someValue];
foreach(var listItem in yourList){
listOfArray.Add(listItem.ToArray());
}
List<int[]>
转换成 int[][]
的示例:
int[][] jaggedArray= listOfArray.ToArray(); //voila you get jagged array or array of array
List<List<int>>
。你不能只回答一个“类似”的问题。 - EnigmativityList<List<int>>
转换为List<int[]>
,那么你可能会有所收获。 - Enigmativity
int[][]
并不是一个多维数组(http://msdn.microsoft.com/en-us/library/2yd9wwz4(v=vs.71).aspx),而是一个数组的数组。 - StriplingWarriorint[][]
的数组不是多维数组,而只是一个数组的数组。二维数组应该是int[,]
。 - svickint[][]
确实有两个维度。正确的命名取决于上下文。 - H H