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

如何在C#中一次性输入完整的二维数组?

C# 一次性输入二维数组的解决方案

问题分析

你的二维数组代码报错核心原因是类型不匹配:Array.ConvertAll返回的是int[]一维数组,但你试图直接将它赋值给int类型的数组元素arr[i,j];同时内层循环完全多余——每一行输入本身就是一组完整的列数据,不需要逐元素读取。


方案1:使用交错数组(int[][])

交错数组是"数组的数组",天然适配每行输入的场景,实现最简单:

int[][] arr = new int[3][];
for (int i = 0; i < 3; i++)
{
    // 读取一行输入,分割后转换为int数组,直接赋值给交错数组的对应行
    arr[i] = Array.ConvertAll(Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries), int.Parse);
}

输入示例:

1 2 3
4 5 6
7 8 9

添加StringSplitOptions.RemoveEmptyEntries可以避免输入中多空格导致的空字符串转换错误。


方案2:使用多维数组(int[,])

如果必须使用int[,]这种矩形多维数组,需要先将每行转换为一维数组,再逐个赋值到多维数组中:

int[,] arr = new int[3, 3];
for (int i = 0; i < 3; i++)
{
    // 读取一行并转换为一维数组
    int[] rowData = Array.ConvertAll(Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries), int.Parse);
    // 将一维数组的元素逐个映射到多维数组的对应位置
    for (int j = 0; j < 3; j++)
    {
        arr[i, j] = rowData[j];
    }
}

真正的"一次性"读取(支持批量粘贴输入)

如果想要无需逐行循环,一次性读取所有输入内容(比如用户直接粘贴完整的二维数组内容),可以读取全部输入后统一处理:

交错数组版本

// 读取所有输入内容,按换行分割成每行
string[] allInputLines = Console.In.ReadToEnd().Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
// 将每行转换为int数组,组成交错数组
int[][] arr = allInputLines.Select(line => 
    Array.ConvertAll(line.Split(' ', StringSplitOptions.RemoveEmptyEntries), int.Parse)
).ToArray();

多维数组版本

string[] allInputLines = Console.In.ReadToEnd().Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
int rowCount = allInputLines.Length;
// 从第一行获取列数
int colCount = allInputLines[0].Split(' ', StringSplitOptions.RemoveEmptyEntries).Length;

int[,] arr = new int[rowCount, colCount];
for (int i = 0; i < rowCount; i++)
{
    int[] rowData = Array.ConvertAll(allInputLines[i].Split(' ', StringSplitOptions.RemoveEmptyEntries), int.Parse);
    for (int j = 0; j < colCount; j++)
    {
        arr[i, j] = rowData[j];
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:21:07