You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将int[][]转换为List<List<int>>?已尝试两种方法均失败

将int[][]转换为List<List>的可行方法

完全可以实现这种转换,先说说你之前两种写法失败的原因:

  • 第一种写法new List<List<int>>(ArrayName)失败:List<List<int>>的构造函数需要接收IEnumerable<List<int>>类型的参数,但int[][]本质是IEnumerable<int[]>,数组里的元素是int[]而非List<int>,类型不匹配,所以没法直接构造。
  • 第二种LINQ写法ArrayName.OfType<List<int>>().ToList()失败:OfType<List<int>>()只会保留集合中属于List<int>类型的元素,但int[][]里的元素都是int[]数组,没有符合条件的元素,最后得到的是空列表。

下面是两种可行的转换方法:

方法一:使用LINQ快速转换

通过Select遍历原二维数组的每个一维数组,将每个int[]转成List<int>,再整体转成目标列表:

// 示例原数组,包含空数组
int[][] arrayName = new int[][] { new int[] {1, 2}, new int[0], new int[] {3} };
List<List<int>> listName = arrayName.Select(arr => arr.ToList()).ToList();

这种方法能自动处理空数组,空的int[]会被转成空的List<int>。

方法二:循环手动转换

如果不想依赖LINQ,可以用循环逐个处理:

int[][] arrayName = new int[][] { new int[] {1, 2}, new int[0], new int[] {3} };
List<List<int>> listName = new List<List<int>>();
foreach (int[] arr in arrayName)
{
    listName.Add(arr.ToList());
}

遍历原数组的每个一维数组,转成List<int>后添加到目标列表中,同样支持空数组的转换。

内容的提问来源于stack exchange,提问作者Umicron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:07:09