如何遍历从用户输入 c# 创建的数组

本文关键字:输入 创建 数组 用户 何遍历 遍历 | 更新日期: 2023-09-27 18:36:13

好吧,我正在尝试制作一个简单的程序,该程序利用for循环并将用户输入一次添加到数组中,这使用它

string []str = new string[10];
for (int i = 0; i < str.Length; i++)
{
     Console.WriteLine("Please enter a number: ");
     str[i] = Console.ReadLine();
}

但是当我尝试使用 foreach 语句遍历数组时,我收到一个错误,指出我无法将 string[] 隐式转换为 String 类型;foreach 语句是这样的:

int even=0; int odd=0;
int[] Arr=new string [] {str};
foreach (int i in Arr)
{
    if (i % 2 == 0)
    {
        even++;
    }
    else
    {
        odd++;
    }
}

这是完整的来源,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = new string[10];
            for (int i = 0; i < str.Length; i++)
            {
                Console.WriteLine("Please enter a number: ");
                str[i] = Console.ReadLine();
            }
            int even = 0; int odd = 0;
            int[] Arr = new string[] { str };
            foreach (int i in Arr)
            {
                if (i % 2 == 0)
                {
                    even++;
                }
                else
                {
                    odd++;
                }
            }
            Console.WriteLine("There is " + even + " even numbers.");
            Console.WriteLine("There is " + odd + " odd numbers");
            Console.ReadLine();
            Console.ReadLine();
        }
    }
}

如何遍历从用户输入 c# 创建的数组

更改输入代码以将用户输入直接保存在整数数组而不是字符串中

    int i = 0;
    int[]values = new int[10];
    while(i < values.Length)
    {
        Console.WriteLine("Please enter a number: ");
        int result;
        string input = Console.ReadLine();
        if(Int32.TryParse(input, out result)
        {
            values[i] = result;
            i++;
        }
        else
        { 
            Console.WriteLine("Not a valid integer");
        }
    }

这将避免在此行中错误,int[] Arr=new string [] {str};您尝试从字符串数组初始化整数数组并且编译器对此不满意

除了明显的编译错误外,使用 Int32.TryParse 可以立即检查用户键入的内容是否不是整数,并且可以拒绝输入

在下面的行中,您尝试从所有输入创建一个整数数组。但实际上这种语法是不正确的。首先,您正在尝试从字符串数组中创建一个 int 数组。这是不可能的。其次,创建一个字符串数组,如下所示 new string[]{"str", "str"}但你正在做new string[]{str[]}.因此,为了解决所有这些问题,我建议更换

int[] Arr=new string [] {str};

int[] Arr = str.Select(s => int.Parse(s)).ToArray();