C#Array.Contains()编译错误

我试图在C#中使用Array.Contains()方法,由于某种原因,它不能编译,即使我相信我正在使用C#4.0,C#应该支持3.0和更高版本。

if (! args.Contains ("-m")) Console.WriteLine ("You must provide a message for this commit."); 

我得到这个错误:

Main.cs(42,15):错误CS1061:'System.Array'不包含'Contains'的定义,并且没有扩展方法'Contains'接受types'System.Array'的第一个参数可以被find(你缺less使用指令或程序集引用?)

我从命令行编译,没有选项:“csc Main.exe”。

你需要using System.Linq;来添加using System.Linq; 在你的节目开始。

你忘了using System.Linq吗?

顺便说一下,如果你不能使用LINQ,还有很多其他的选项,比如Array.Exists

如果你不'想要使用LINQ尝试

 ((IList<string>)args).Contains("-m") 

使用System.Linq这让我每次

我有同样的问题,我有

 using System.Linq 

这是因为我试图比较string与int ,但不知何故它说

'System.Array'不包含'Contains'的定义

确保你使用的是正确版本的CSC(csc /?) – 你需要2010版来编译4.0。 您也可能需要添加额外的库(/ r选项)编译才能成功。