如何在Mono中使用LINQ?
我不能让System.Linq(又名LINQ to Objects)工作。 我在Ubuntu 10 Lucid Lynx中使用Mono 2.4.4运行MonoDevelop 2.2.1。
他们在他们的网站上宣传他们实现了LINQ,但是我甚至找不到Enumerable.Range
或ToArray()
。 怎么了?
我想你需要做的是:
- 在您的项目选项中将“运行时版本”设置为“Mono / .Net 3.5”
- 添加对System.Core包的引用(在解决scheme资源pipe理器中右键单击引用)
- 添加“使用System.Linq”到你的模块
之后,你的代码应该编译和执行
希望这有助于问候
你使用的是gmcs
编译器吗? mcs
似乎没有编译包含Linq的代码。
$ cat a.cs using System; using System.Linq; class Test { static void Main() { foreach (var i in new int[] { 1, 2, 3, 4, 5}.Where(n => n % 2 == 0)) { Console.WriteLine(i); } } } $ gmcs a.cs $ ./a.exe 2 4
要使用gmcs
进行编译,请按照MonoDevelop FAQ所述执行以下指示信息:
我可以用gmcs编译我的项目吗?
是。 右键点击你的项目,select'选项' – >'运行',然后从下拉列表中select'2.0'。
当你说“找不到”是什么意思? 智能感知? 许多linq方法是扩展方法,而monodevelop可能不支持intellisense中的方法。 在这种情况下,您仍然可以使用它们,并且您的代码应该被编译,但它不在下拉列表中。
关于扩展方法