【问题标题】:Check if character array contains different than allowed characters检查字符数组是否包含与允许的字符不同的字符
【发布时间】:2018-10-22 08:44:26
【问题描述】:

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

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

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

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

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

应该表示:如果(数组单词包含与 A 和/或 C 和/或 T 和/或 G 不同的字符=> 返回 false)。

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

【问题讨论】:

    标签: c# arrays char contains


    【解决方案1】:

    LINQ 非常适合:

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

    【讨论】:

    • 谢谢,这似乎是我正在寻找的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2021-06-10
    • 2013-10-26
    • 1970-01-01
    • 2013-06-25
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    相关资源
    最近更新 更多