我无法理解linq任何运算符。让我们考虑下面的代码片段(使用VS 2010和.NET 4.0)linq任何运算符不等于(!=)
List<string> sample = new List<string> { "a", "b", "c", "d" };
List<string> secondSample = new List<string> { "b", "c" };
foreach (string s in sample)
{
if(secondSample.Any(data=> data.ToString() == s))
Console.WriteLine(s);
}
当运行它产生以下输出
b
c
这是我很期待。但是,如果我改变等号(==
)以不相等(!=
)我得到这个
a
b
c
d
不应该这个是
a
d
如果我改变了,如果条件
if(!(secondSample.Any(data=> data.ToString() == s)))
我得到
a
d
所以我的问题是我是否以错误的方式解释Any运算符?不应
if(secondSample.Any(data=> data.ToString() != s))
评价为真时,从secondSample
值是不是在样品
降频选民考虑留下评论和解释。 –