【问题标题】:C# How do I use a variable outside of a loop that changes from string to int inside the loop?C#如何在循环外使用从字符串更改为循环内的int的变量?
【发布时间】:2017-10-03 10:10:58
【问题描述】:

代码:

string[] numbers = new string[2];
for (int i = 0; i < numbers.Length; i++)
{
    numbers[i] = Console.ReadLine();
    if (int.TryParse(numbers[i], out int numberTry) && i == 0)
        Console.WriteLine("That would be a number yes.");

    else if (int.TryParse(numbers[i], out numberTry))
        Console.WriteLine("Lovely work! That is indeed two numbers!");

    else
    {
        Console.Clear();
        Console.WriteLine("That's not a number. I am dissapointed.");
        Console.ReadKey();
        Environment.Exit(0);
    }
}

我的问题是我不能在循环外使用 numbers[] 作为 int,因为它在循环内从字符串转换为 int。我需要能够使用作为 int 的方法发送它以对 numbers[0] 和 numbers[1] 执行操作。 提前致谢!

【问题讨论】:

  • 您可以创建另一个整数数组,并在循环中填充。
  • 感谢您的想法!

标签: c# for-loop tryparse


【解决方案1】:

你可以试试这个。它应该可以工作。

    int[] numbers = new int[2];
    for (int i = 0; i < numbers.Length; i++)
    {
        var number = Console.ReadLine();
        if (int.TryParse(number, out int numberTry) && i == 0)
        {
            Console.WriteLine("That would be a number yes.");
            numbers[i] = numberTry;
        }
        else if (int.TryParse(number, out numberTry))
        {
            Console.WriteLine("Lovely work! That is indeed two numbers!");
            numbers[i] = numberTry;
        }
        else
        {
            Console.Clear();
            Console.WriteLine("That's not a number. I am dissapointed.");
            Console.ReadKey();
            Environment.Exit(0);
        }
    }

    Console.ReadKey();

【讨论】:

  • 这似乎确实有效!干杯!现在,如果您不介意,您做了什么,我似乎找不到任何其他差异,然后是“numbers [i] = numberTry”。
  • @Hagwill 我将 string[] 数组更改为 int[] 数组。然后我从控制台中的数字变量中读取您的值。我将该值添加到条件内的 numbers[] 数组中。如果是对的,可以点赞吗?干得好。
  • 嗯,好的,谢谢你的解释。我做了,但我有 8 声望,所以你看不到它。也祝你未来的工作好运!
猜你喜欢
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 2011-02-19
相关资源
最近更新 更多