2015-02-11 122 views
-2

我有一個預先定義的字符串爲Follows。檢查一個字符串是否包含未定義的字符

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

我需要一些函數來將值與preDefined進行比較。

(value.SomefunctionContains(preDefined) 

這個函數需要返回

value -> true; 
value1 -> false 

我知道,我不能使用含有()或任何()。所以plz幫助

+5

似乎不是一個難題。你有沒有試圖解決它?您可以檢查每個字符並檢查原始字符串是否包含此字符?有一些LINQ方法來檢查他們的例子.. – 2015-02-11 09:39:07

回答

2

你只是尋找如果value有,是不是在predefined任何字符,所以這應該這樣做:

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

或者它使用All更清楚:

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

    return true; 
} 
1

您可以執行以下方法得到結果:

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; 
    } 
} 

請注意,此解決方案是一種廣義實現。即使字符的順序不同,IT也會返回true,除非包含所有字符。

相關問題