Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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# 检查字符数组是否包含不同于允许的字符_C#_Arrays_Char_Contains - Fatal编程技术网

C# 检查字符数组是否包含不同于允许的字符

C# 检查字符数组是否包含不同于允许的字符,c#,arrays,char,contains,C#,Arrays,Char,Contains,我的问题是,我有一个长度为4的字符数组,基本上代表一个单词(这个数组是字典中的一个键,但这不重要)。 我需要检查这些单词是否仅由允许的字符组成,在本例中为{A,T,C,G} 所以下面所有的单词都是有效的:AAAA,GGGG,GCGC,ATAT,ATGC,CCGA等等 但以下情况不会出现:AFGC、AAAS、TGCW等 由于性能原因,我希望避免转换为字符串。 我的想法是这样的: if (word.Contains(!'ACTG')) 其中应该表示:If(数组字包含与A和/或C和/或T和/或G不同

我的问题是,我有一个长度为4的字符数组,基本上代表一个单词(这个数组是
字典中的一个键,但这不重要)。
我需要检查这些单词是否仅由允许的字符组成,在本例中为{A,T,C,G}

所以下面所有的单词都是有效的:AAAA,GGGG,GCGC,ATAT,ATGC,CCGA等等

但以下情况不会出现:AFGC、AAAS、TGCW等

由于性能原因,我希望避免转换为字符串。 我的想法是这样的:

if (word.Contains(!'ACTG'))
其中应该表示:If(数组字包含与A和/或C和/或T和/或G不同的字符=>返回false)


问题是我不知道如何编写这种语法(如果可以用这么简单的方式编写的话)。

LINQ非常适合:

char[] allowed = { 'A', 'T', 'C', 'G' };
if (word.Any(c => !allowed.Contains(c)))
{
    // BZZZZTT! Bad character in word
}

LINQ在这方面很出色:

char[] allowed = { 'A', 'T', 'C', 'G' };
if (word.Any(c => !allowed.Contains(c)))
{
    // BZZZZTT! Bad character in word
}

谢谢,这似乎是我一直在寻找的解决方案。谢谢,这似乎是我一直在寻找的解决方案。