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

C#中如何通过Console.ReadLine()实现二维数组整行输入

C# 整行输入二维数组实现方案

核心思路

摒弃逐个读取单元素的方式,改为按以下逻辑实现:

  • 先读取一行输入,解析出二维数组的行数和列数
  • 逐行读取每行的元素集合,用空格分割后转换为整数,填充到对应数组位置

基础实现代码(逐行输入)

// 读取行列数:示例输入 "2 2"
string[] dims = Console.ReadLine().Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
int m = int.Parse(dims[0]);
int n = int.Parse(dims[1]);

int[,] arr = new int[m, n];

for (int i = 0; i < m; i++)
{
    // 读取当前行元素:示例输入 "10 20" 或 "30 40"
    string[] rowValues = Console.ReadLine().Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
    for (int j = 0; j < n; j++)
    {
        arr[i, j] = int.Parse(rowValues[j]);
    }
}

兼容逗号分隔整段输入的实现

如果需要支持一次性输入所有内容(比如示例格式 "2 2,10 20,30 40"),可以用逗号先拆分出行数据:

// 一次性读取全部输入:示例输入 "2 2,10 20,30 40"
string allInput = Console.ReadLine();
string[] parts = allInput.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries);

// 解析行列数
string[] dims = parts[0].Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
int m = int.Parse(dims[0]);
int n = int.Parse(dims[1]);

int[,] arr = new int[m, n];

// 解析每行元素
for (int i = 0; i < m; i++)
{
    string[] rowValues = parts[i+1].Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
    for (int j = 0; j < n; j++)
    {
        arr[i, j] = int.Parse(rowValues[j]);
    }
}

实用提示

实际开发中建议添加异常处理,比如捕获FormatException(输入非有效数字)、IndexOutOfRangeException(输入元素数量与数组维度不匹配)等,避免程序因非法输入直接崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:45:36