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

Mat*_*mec 1 c# arrays contains char

我的问题是我有一个长度为4的字符数组,基本上代表一个单词(这个数组是一个键dictionary<char[],int>,但这应该不重要).我需要检查这些单词是否仅包含允许的字符,在本例中为{A,T,C,G}.

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

虽然以下不会:AFGC,AAAS,TGCW等

我想避免因为性能而转换为字符串.我的想法是这样的:

if (word.Contains(!'ACTG'))
Run Code Online (Sandbox Code Playgroud)

哪个shoudl表示:If(数组字包含的字符不同于A和/​​或C和/或T和/或G =>返回false).

问题是我不知道如何明智地编写这种语法(如果这样做甚至可以这么简单).

its*_*e86 6

LINQ非常适合:

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