如何在 c# 中读取两个数字

本文关键字:两个 数字 读取 | 更新日期: 2023-09-27 18:34:54

>INPUT

67 89 (单行(

我必须从控制台输入两个数字,并存储在两个不同的整数变量中。哎呀呀呀�

如何在 c# 中读取两个数字

这将从控制台读取一行,拆分字符串,解析整数并输出列表。然后,您可以根据需要从列表中获取每个数字。

Console.ReadLine().Split().Select(s => int.Parse(s)).ToList()

如果总是有两个数字,您可以按如下方式操作:

var integers = Console.ReadLine().Split().Select(s => int.Parse(s)).ToArray();
int first = integers[0];
int second = integers[1];

需要改进的领域:

  • 您可能希望使用 TryParse 而不是 Parse,如果输入未解析,则输出友好的错误消息

  • 如果您需要正好 2 个数字(不多也不少(,您可能需要检查integers的长度,如果<> 2


TryParse()请求的示例:

var numbers = new List<int>();
foreach (string s in Console.ReadLine().Split())
{
    if (int.TryParse(s, out int number))
        numbers.Add(number);
    else
        Console.WriteLine($"{s} is not an integer");
}
using System;
public class Program
{
    static void Main(string[] args)
    {
        var numbers = Console.ReadLine();
        var numberList = numbers.Split(' ');
        var number1 = Convert.ToInt32(numberList[0]);
        var number2 = Convert.ToInt32(numberList[1]);
        Console.WriteLine(number1 + number2);
        Console.ReadKey();
    }
}

如果您从其他程序执行,则需要从参数中读取

var result = Console.ReadLine().Split(new [] { ' '});

类似的东西,在我的头顶。

请参阅 Console.ReadLine(( 和 String.Split(( 的文档

使用 Linq,您可以投影到 int 数组中:

var result = Console.ReadLine()
                    .Split(new[] { ' ' })  //Explicit separator char(s)
                    .Select(i => int.Parse(i))
                    .ToArray();

甚至有点更简短:

var result = Console.ReadLine()
                    .Split()  //Assuming whitespace as separator
                    .Select(i => int.Parse(i))
                    .ToArray();

结果现在是一个整数数组。