如何检查字符串是否不等于布尔值

时间:2016-12-01 14:49:15

标签: c# string boolean

大家好我想检查用户输入(字符串)是否不等于布尔值,但显然不能这样做:

例如:

using System;
using System.Linq;

namespace SymbolCheck
{
    class Program
    {
        static void Main(string[] args)
        {
            String symbol = Console.ReadLine();
            int value;
            bool isVowel = "aeiouAEIOU".IndexOf(symbol) >= 0;

            if (int.TryParse(symbol, out value))
            {
                Console.WriteLine("Input is a number: " + symbol);
            }

            else if (symbol.Equals(isVowel) & symbol.Any(char.IsUpper))
            {
                Console.WriteLine("Input is a uppercase vowel: "+ symbol);
            }

            else if (symbol != isVowel)
            {
                Console.WriteLine("Input is a consonant: "+ symbol);
            }

...

我有办法绕过它,但想知道是否还有另一种方法:

    else if (symbol.Equals(isVowel) & symbol.Any(char.IsLower))
    {
        Console.WriteLine("Input is a lowercase vowel: "+ symbol);
    }

    else if (!int.TryParse(symbol, out value) & symbol.Any(char.IsUpper))
    {
        Console.WriteLine("Input is a uppercase consonant: " + symbol);
    }

...

1 个答案:

答案 0 :(得分:2)

您可能想要检查两个条件是否都为真:所以请使用&&符号。因此,你的isVowel是一个布尔值,所以直接使用它(symbol.Equals(isVowel.ToString()没有任何意义)

if (isVowel) && symbol.Any(char.IsUpper))

另一项检查将是

if (!isVowel)