我無法理解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
值是不是在樣品
降頻選民考慮留下評論和解釋。 –