我试图使用Linq来确定字符串是否不在数组中。我使用的代码是:
if (!stringArray.Any(soughtString.Contains)){
doStuff();}
但它没有用。显然创建一个foreach循环就足够了,但我想理解为什么这条线不起作用。是的,该文件有using System.Linq;
答案 0 :(得分:5)
你不是在询问字符串是否不在数组中,而是在询问数组中的所有字符串是否都是其他字符串中的子字符串。显然至少有一个是,即使它不相等。
您只想进行简单的Contains
检查:
if(!stringArray.Contains(soughtString))
答案 1 :(得分:3)
您目前正在通过" Any"功能"包含"方法(然后传递给数组中的每个字符串)。换句话说:
array.Any(s => soughtString.Contains(s));
可能,你想要另一种方式:
array.Any(s => s.Contains(soughtString));