int.Parse函数输入数组怎么输入?

img

img

img

img

怎么输入这个表格里面的数独表盘呢? 键盘输入直接填阿拉伯数字9个一组用空格隔开不行,一串直接输入也不行

先看运行效果:

img

示例代码如下(请自行按照具体业务逻辑处理):

using System;
using System.Linq;

namespace ConsoleApp2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            const int rows = 3;
            const int columns = 3;
            var arr = new int[rows, columns];
            Console.WriteLine($"程序已就绪,请输入[{rows}x{columns}]的数独初盘...");
            for (var row = 0; row < rows; row++)
            {
                var input = Console.ReadLine();
                var isInputCorrect = false;
                do
                {
                    if (string.IsNullOrEmpty(input))
                    {
                        Console.WriteLine($"第{row}行输入不正确,请重新输入");
                        continue;
                    }
                    if (input.ToLower() == "exit")
                    {
                        break;
                    }

                    var numbers = input.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries)
                        .Select(int.Parse).ToArray();
                    if (numbers.Length != columns)
                    {
                        Console.WriteLine($"第{row}行输入不正确,请重新输入");
                        input = Console.ReadLine();
                    }
                    else
                    {
                        isInputCorrect = true;
                        for (var column = 0; column < columns; column++)
                        {
                            arr[row, column] = numbers[column];
                        }
                    }
                } while (!isInputCorrect);
            }

            Console.WriteLine("输入完成:");
            for (var i = 0; i < rows; i++)
            {
                for (var j = 0; j < columns; j++)
                {
                    Console.Write($"{arr[i, j]} ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
}