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).
问题是我不知道如何明智地编写这种语法(如果这样做甚至可以这么简单).
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)