46 votes

Comment utiliser LINQ en Mono?

Je ne peux pas faire Système.Linq (aka LINQ to Objects) de travail. Je suis en cours d'exécution MonoDevelop 2.2.1 dans Ubuntu 10 Lucid Lynx avec Mono 2.4.4.

Ils font la publicité de leur site qu'ils ont mis en œuvre LINQ, mais je ne peux même pas trouver Enumerable.Range ou ToArray(). Quel est le problème?

79voto

serge_gubenko Points 11561

Je suppose que ce que vous devez faire est de:

  1. Dans votre projet d'options "Runtime version" à "Mono/.Net 3.5"
  2. Ajouter une référence à System.Package de base (à droite, cliquez sur références dans l'explorateur de solutions)
  3. Ajouter "à l'aide du Système.Linq" de votre module

après que votre code doit compiler et exécuter

espérons que cela aide, cordialement

4voto

Mark Rushakoff Points 97350

Êtes-vous à l'aide de l' gmcs compilateur? mcs ne semble pas compiler le code contenant 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

Pour compiler avec gmcs, suivez les instructions suivantes telles que décrites par le MonoDevelop FAQ:

Puis-je compiler mon projet avec la stratégie?

Oui. Clic droit sur votre projet, sélectionnez 'Options'->'Runtime' et sélectionnez '2.0' à partir de la liste déroulante.

1voto

Tim Hoolihan Points 6982

Que voulez-vous dire quand vous dites "ne peut pas trouver"? Intellisense? Beaucoup de linq méthodes sont des méthodes d'extension, et monodevelop ne peut pas soutenir les personnes dans intellisense. Dans ce cas, vous pouvez toujours utiliser votre code doit compiler, il n'est tout simplement pas dans le menu déroulant.

Sur les méthodes d'extension

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X