检查字符串是否包含未定义的字符

Check if a string contains not defined characters

我有一个预定义的字符串如下。

string preDefined="abc"; // or i can use char array in here
string value="ac";
string value1="abw";

我需要一些函数来比较预定义的值。

 (value.SomefunctionContains(preDefined) 

此功能需要return

value -> true;
value1 -> false

我知道我不能使用 contains() 或 Any()。所以请帮忙

您只是在寻找 value 是否有任何不在 predefined 中的字符,所以应该这样做:

!value.Any(x => !predefined.Contains(x))

或者用All更清楚:

value.All(predefined.Contains);
private bool SomeFunction(string preDefined, string str)
{
    foreach (char ch in str)
    {
        if (!preDefined.Contains(ch))
        {
            return false;
        }
    }

    return true;
}

您可以执行以下方法来获取结果:

private static bool DoesContain(string predefined, string value)
{
    char[] c_pre = predefined.ToCharArray();
    char[] c_val = value.ToCharArray();
    char[] intersection = c_pre.Intersect(c_val).ToArray();
    if (intersection.Length == c_val.Length) {
        return true;
    }
    else {
        return false;
    }
}

请注意,此解决方案是通用实施。即使字符的顺序不同,它也 returns 正确,除非包含所有字符。