我正在尝试执行一个简单的测试代码:
using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
namespace TestMono
{
public class TesterManager
{
public TesterManager ()
{
Console.WriteLine("Test");
Path.GetTempPath();
foreach (var i in new int[] { 1, 2, 3, 4, 5}.Where(n => n % 2 == 0))
{
Console.WriteLine(i);
}
List<string> ar= new List<string>();
ar.Add("1"); ar.Add("2");
var lb = ar.Where(n => n=="2");
}
}
}
编译该代码我有两个错误:
Esecuzione compilazione principale...
/Library/Frameworks/Mono.framework/Versions/2.6.4/bin/gmcs /noconfig "/out:/Users/roberto/Projects/TestMono/TestMono/bin/Debug/TestMono.exe" /nologo /warn:4 /debug:+ /debug:full /optimize- /codepage:utf8 /platform:x86 "/define:DEBUG" /t:exe "/Users/roberto/Projects/TestMono/TestMono/TesterManager.cs" "/Users/roberto/Projects/TestMono/TestMono/Main.cs"
Compilation failed: 2 error(s), 0 warnings
/Users/roberto/Projects/TestMono/TestMono/TesterManager.cs(15,70): error CS1061: Type `int[]' does not contain a definition for `Where' and no extension method `Where' of type `int[]' could be found (are you missing a using directive or an assembly reference?)
/Users/roberto/Projects/TestMono/TestMono/TesterManager.cs(24,37): error CS1061: Type `System.Collections.Generic.List<string>' does not contain a definition for `Where' and no extension method `Where' of type `System.Collections.Generic.List<string>' could be found (are you missing a using directive or an assembly reference?)
我在项目属性中设置了Mono / .NET 3.5,我拥有Mono和MonoDevelop的最新版本。我不明白出了什么问题!
答案 0 :(得分:6)
您可能需要添加对“System.Core.dll”的引用才能访问“System.Linq”命名空间。
这个让我挠了一会儿,我太习惯了Resharper带来我的参考资料。
答案 1 :(得分:2)
您是否添加了对System.Linq.dll(或Mono中调用的内容)的引用?
(我可以发誓VS问同样的事情; P)