将列表转换为int[][]
类型的数组的最佳方法是什么?
List<List<int>> lst = new List<List<int>>();
答案 0 :(得分:48)
int[][] arrays = lst.Select(a => a.ToArray()).ToArray();
答案 1 :(得分:5)
使用LINQ很容易:
lst.Select(l => l.ToArray()).ToArray()
如果你真的想要二维数组(int[,]
,而不是int[][]
),那将会更加困难,最好的解决方案可能就是使用嵌套的for
。
答案 2 :(得分:2)
你可以使用linq轻松完成。
int[][] arrays = lst.Select(a => a.ToArray()).ToArray();
但是如果你想要另一种方式,你可以遍历列表并手动生成二维数组。
答案 3 :(得分:0)
没有库函数可以做到这一点。
您需要使用循环执行此操作。
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);
}
}
你去吧!