如何转换列表<;列表<;int>>;到数组的数组

本文关键字:gt 列表 数组 lt int 转换 何转换 | 更新日期: 2023-09-27 17:58:20

将列表转换为类型为int[][]的数组的最佳方法是什么?

List<List<int>> lst = new List<List<int>>();

如何转换列表<;列表<;int>>;到数组的数组

int[][] arrays = lst.Select(a => a.ToArray()).ToArray();

使用LINQ很容易:

lst.Select(l => l.ToArray()).ToArray()

如果你真的想要二维数组(int[,],而不是int[][]),那会更困难,最好的解决方案可能是使用嵌套的for

您可以使用linq轻松完成。

int[][] arrays = lst.Select(a => a.ToArray()).ToArray();

但是如果你想要另一种方式,你可以循环浏览列表并手动生成2d数组。

如何循环嵌套列表

没有库函数可以做到这一点。

您需要使用循环来完成此操作。

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<int[]>而不是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