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

Check if character array contains different than allowed characters

我的问题是我有一个长度为 4 的字符数组,它基本上表示一个单词(这个数组是 dictionary<char[],int> 中的一个键,不过这应该无关紧要)。 我需要检查这些单词是否仅由允许的字符组成,在本例中为 {A, T, C, G}。

因此以下所有单词都是有效的:AAAA、GGGG、GCGC、ATAT、ATGC、CCGA 等

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

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

if (word.Contains(!'ACTG'))

应该表示:If (array word contains different characters than A and/or C and/or T and/or G=> return false).

问题是我不知道如何明智地编写这种语法(如果这甚至可能以这种简单的方式完成的话)。

LINQ 非常适合这个:

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