c# negation operator open parenthesis expected

c# negation operator open parenthesis expected

在 C# 中,我正在为这样的否定运算符编写代码,但它显示 syntax error, '(' expected

DataTable tmp = new DataTable();
var col = tmp.Columns;
if !(col.Contains("COL1") && col.Contains("COL2") && col.Contains("COL3"))
{
    //DO STH
}

如果我更改为此代码,错误就会消失:

DataTable tmp = new DataTable();
var col = tmp.Columns;
if (!col.Contains("COL1") || !col.Contains("COL2") || !col.Contains("COL3"))
{
    //DO STH
}

Docs from MS 好像太简单了,我没有找到如何更正第一个代码。

那么为什么第一个代码有语法错误,如何解决?

an if 总是以 ( 开头所以代码应该是

DataTable tmp = new DataTable();
var col = tmp.Columns;
if (!(col.Contains("COL1") && col.Contains("COL2") && col.Contains("COL3")))
{
    //DO STH
}