如何在Mono中使用LINQ?

时间:2010-04-27 02:00:11

标签: linq mono monodevelop

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

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

3 个答案:

答案 0 :(得分:79)

我想你需要做的是:

  1. 在项目选项中将“运行时版本”设置为“Mono / .Net 3.5”
  2. 添加对System.Core包的引用(右键单击解决方案资源管理器中的引用)
  3. 将“使用System.Linq”添加到您的模块
  4. 之后你的代码应该编译并执行

    希望这有帮助,尊重

答案 1 :(得分:4)

您使用的是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进行编译,请执行the MonoDevelop FAQ所述的以下说明:

  

我可以用gmcs编译我的项目吗?

     

是。右键单击您的项目,选择“选项” - >“运行时”,然后从下拉列表中选择“2.0”。

答案 2 :(得分:1)

当你说“找不到”时你是什么意思?智能感知?许多linq方法都是扩展方法,monodevelop可能不支持intellisense中的方法。在这种情况下,你仍然可以使用它们,你的代码应该编译,它只是不在下拉列表中。

About extension methods

相关问题