How to use LINQ in Mono?

Solution 1:

I guess what you would need to do is:

  1. In your project options set "Runtime version" to "Mono/.Net 3.5"
  2. Add reference to System.Core package (right click references in solution explorer)
  3. Add "using System.Linq" to your module

after that your code should compile and execute

hope this helps, regards

Solution 2:

Are you using the gmcs compiler? mcs does not seem to compile code containing 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

To compile with gmcs, perform the following instructions as described by the MonoDevelop FAQ:

Can I compile my project with gmcs?

Yes. Right click on your project, select 'Options'->'Runtime' and select '2.0' from the drop-down list.