Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用linq检查数组中是否有任何单词不包含元音_C#_Arrays_Linq - Fatal编程技术网

C# 使用linq检查数组中是否有任何单词不包含元音

C# 使用linq检查数组中是否有任何单词不包含元音,c#,arrays,linq,C#,Arrays,Linq,我正试着检查是否有单词没有元音。我期待的答案是肯定或否定 这是我的代码: string sentence = "I'm thinking about buying a house in the mountains."; string[] words = sentence.Split(' '); //1. Check if any words do not contain a vowel IEnumerable<string> query1 = words .Where

我正试着检查是否有单词没有元音。我期待的答案是肯定或否定

这是我的代码:

string sentence = "I'm thinking about buying a house in the mountains.";
string[] words = sentence.Split(' ');

//1. Check if any words do not contain a vowel
IEnumerable<string> query1 = words
       .Where(n => !n.Contains("a") 
                  || !n.Contains("e") 
                  || !n.Contains("o") 
                  || !n.Contains("i") 
                  || !n.Contains("r"));
string-sense=“我正在考虑在山里买房子。”;
字符串[]单词=句子。拆分(“”);
//1. 检查是否有任何单词不包含元音
IEnumerable query1=单词
其中(n=>!n.Contains(“a”)
||!n.Contains(“e”)
||!n.包含(“o”)
||!n.包含(“i”)
||!n.包含(“r”);

如何获得答案?

您想使用
&&
而不是
|
,然后您可以简单地使用
任何
方法,如下所示:

bool some_words_do_not_have_a_vowel = words
    .Where(n => !n.Contains("a") && !n.Contains("e") && !n.Contains("o") && !n.Contains("i") && !n.Contains("r"))
    .Any();
bool some_words_do_not_have_a_vowel =
    words
    .Any(n => !n.Contains("a") && !n.Contains("e") && !n.Contains("o") && !n.Contains("i") && !n.Contains("r"));
在这种情况下,您可以将
Where
去掉,如下所示:

bool some_words_do_not_have_a_vowel = words
    .Where(n => !n.Contains("a") && !n.Contains("e") && !n.Contains("o") && !n.Contains("i") && !n.Contains("r"))
    .Any();
bool some_words_do_not_have_a_vowel =
    words
    .Any(n => !n.Contains("a") && !n.Contains("e") && !n.Contains("o") && !n.Contains("i") && !n.Contains("r"));
请注意,这是区分大小写的。您可能希望改为执行不区分大小写的搜索


顺便说一句,r不是元音。

您想使用
&
而不是
|
,然后您可以简单地使用
任何
方法,如下所示:

bool some_words_do_not_have_a_vowel = words
    .Where(n => !n.Contains("a") && !n.Contains("e") && !n.Contains("o") && !n.Contains("i") && !n.Contains("r"))
    .Any();
bool some_words_do_not_have_a_vowel =
    words
    .Any(n => !n.Contains("a") && !n.Contains("e") && !n.Contains("o") && !n.Contains("i") && !n.Contains("r"));
在这种情况下,您可以将
Where
去掉,如下所示:

bool some_words_do_not_have_a_vowel = words
    .Where(n => !n.Contains("a") && !n.Contains("e") && !n.Contains("o") && !n.Contains("i") && !n.Contains("r"))
    .Any();
bool some_words_do_not_have_a_vowel =
    words
    .Any(n => !n.Contains("a") && !n.Contains("e") && !n.Contains("o") && !n.Contains("i") && !n.Contains("r"));
请注意,这是区分大小写的。您可能希望改为执行不区分大小写的搜索


顺便说一句,r不是元音。

要获取没有元音的单词集合,可以检查元音集合:

var vowels = new char[] { 'a', 'i', 'u', 'e', 'o', 'A', 'I', 'U', 'E', 'O' };
然后检查每个字符串(单词)集合中是否包含元音。您只接受不包含任何元音的单词:

var query = words.Where(x => !x.ToCharArray().Any(c => vowels.Contains(c)); //get words without vowels.
如果您想检查这些单词中是否有来自所有集合的元音。只需将查询结果与以下内容一起使用:

bool result = query.Any();

或者,您甚至可以根据原始字符串检查结果。

要获取没有元音的单词集合,您可以查看元音集合:

var vowels = new char[] { 'a', 'i', 'u', 'e', 'o', 'A', 'I', 'U', 'E', 'O' };
然后检查每个字符串(单词)集合中是否包含元音。您只接受不包含任何元音的单词:

var query = words.Where(x => !x.ToCharArray().Any(c => vowels.Contains(c)); //get words without vowels.
如果您想检查这些单词中是否有来自所有集合的元音。只需将查询结果与以下内容一起使用:

bool result = query.Any();

或者您甚至可以根据原始字符串检查结果。

继续您的操作,我认为您应该使用&&而不是| |您是在问这个句子是否包含元音,还是想从这个句子中找到不包含元音的单词?您有什么理由想使用linq解决它吗?继续您的操作,我认为你应该使用&&而不是| |你是在问这个句子是否包含元音,还是想从这个句子中找到不包含元音的单词?你想用linq解决这个问题的原因是什么?也许你还想检查大写元音(例如“I”)。“I'm”没有小写元音。也许您还需要检查大写元音(例如“I”)。“I'm”没有小写元音。