如何解决错误:无法将类型“long”隐式转换为“bool”?

-3 c# compiler-errors

using System;
using System.Linq;
    
namespace Problem
{
    class Prog
    {
        public static void Main(string[] args)
        {
            long t= long.Parse(Console.ReadLine());
         
            while (t-->0)
            {
                long n, even = 0, odd = 0, a;
    
                n = long.Parse(Console.ReadLine());
    
                for (long i = 0; i < n; i++)
                {
                    a = long.Parse(Console.ReadLine());
                    if (a % 2)
                        odd++;
                    else
                        even++;
                }
                Console.WriteLine((even < odd) ? even : odd);
                
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

由于我是 C# 新手,因此我正在使用此代码来解决hackerearth 中的问题,因此正在练习,但实际上我没有得到如何解决此错误的说法:

solution.cs(21,25):错误 CS0029:无法将类型“long”隐式转换为“bool”
编译失败:1 个错误,0 个警告`

Mis*_*sky 5

if语句期望bool检查,在您的情况下a % 2只返回一个long数字,因为ais 类型long

你只需要boolean expression在你的if陈述中写一个。

if (a % 2 != 0)
Run Code Online (Sandbox Code Playgroud)