C# 如何分离未分离的输入C

C# 如何分离未分离的输入C,c#,input,split,C#,Input,Split,程序必须将偶数和奇数相加,然后相乘 当我输入像12345这样的数字时,问题就出现了。 数组采用类似于1的数字元素,但为了使代码正常工作,当我这样放置它时,它必须将输入分开12345 如果要在“”空间上拆分,则输入应使用分隔符:1 2 3 4 5 如果要枚举单个数字内的数字,例如12345内的数字 这样,您就可以输入从0到9的数字,而不必关心它们的书写方式: class Program { static void Main(string[] args) { int[

程序必须将偶数和奇数相加,然后相乘

当我输入像12345这样的数字时,问题就出现了。 数组采用类似于1的数字元素,但为了使代码正常工作,当我这样放置它时,它必须将输入分开12345

如果要在“”空间上拆分,则输入应使用分隔符:1 2 3 4 5

如果要枚举单个数字内的数字,例如12345内的数字


这样,您就可以输入从0到9的数字,而不必关心它们的书写方式:

class Program
{
    static void Main(string[] args)
    {
        int[] numbers = Console.ReadLine().Select(x => {
            if(int.TryParse(x.ToString(), out int result))
            {
                return result;
            }
            else
            {
                return -1;
            }
        }).Where(x => x != -1).ToArray();

        int even = 0;
        int odd = 0;

        for (int i = 0; i < numbers.Length; i++)
        {

            if (numbers[i] % 2 == 0)
            {
                even = even + numbers[i];
            }
            else
            {
                odd = odd + numbers[i];
            }
        }
        Console.WriteLine(even * odd);
    }
}
输出:

54

输入:

12345
1 2 3 4 5
1,2,3,4,5
,1.2 34|5
输出:

54

输入:

12345
1 2 3 4 5
1,2,3,4,5
,1.2 34|5
输出:

54

输入:

12345
1 2 3 4 5
1,2,3,4,5
,1.2 34|5
输出:

54


您需要迭代字符串的字符,而不是在空间上拆分。也许对字符串使用ToCharArray,然后将每个字符转换为整数。@Darkonekt为什么要使用ToCharArray?字符串已经是IEnumerable。如果要创建原始字符串的副本并对其进行修改,则只需执行ToCharray。在c中,转换为int也是隐式的,所以不需要这样做either@TimRutter同意。但由于这是一个初学者的问题,我想给他展示一个更明确的路线。此外,所有字符都可以转换为int,这在本例中可能不太理想,因为根据他试图完成的任务,只允许使用数字字符。。。。