如何在Mono中使用LINQ?

我不能让System.Linq(又名LINQ to Objects)工作。 我在Ubuntu 10 Lucid Lynx中使用Mono 2.4.4运行MonoDevelop 2.2.1。

他们在他们的网站上宣传他们实现了LINQ,但是我甚至找不到Enumerable.RangeToArray() 。 怎么了?

我想你需要做的是:

  1. 在您的项目选项中将“运行时版本”设置为“Mono / .Net 3.5”
  2. 添加对System.Core包的引用(在解决scheme资源pipe理器中右键单击引用)
  3. 添加“使用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中的方法。 在这种情况下,您仍然可以使用它们,并且您的代码应该被编译,但它不在下拉列表中。

关于扩展方法