2014-03-31 30 views
0

我想用Linq来判断一个字符串是否不在数组中。我使用的代码是:检查一个字符串是否不是数组的一部分(C#,Linq)

if (!stringArray.Any(soughtString.Contains)){ 
      doStuff();} 

但它不工作。很明显,创建一个foreach循环就足够了,但我想了解为什么这行不起作用。是的,该文件有using System.Linq;

+2

'array.Contains( “富”)'? – mituw16

回答

5

你不问,如果该字符串不在数组中,你问是否没有任何字符串在其他字符串中的子字符串。显然至少有一个是,即使它不相同。

你只想做一个简单的Contains检查:

if(!stringArray.Contains(soughtString)) 
+0

过度复杂化,FTW。非常感谢。 –

3

您正在传递“任何”功能“包含”方法(然后被传递的每个字符串数组中)。在其他的,也就是说:

array.Any(s => soughtString.Contains(s)); 

有可能的,你想用另一种方式:

array.Any(s => s.Contains(soughtString)); 
相关问题