web-dev-qa-db-ja.com

LINQをMonoで使用する方法

System.Linq(別名LINQ to Objects)を機能させることができません。私はMono 2.4.4を搭載したUbuntu 10 Lucid LynxでMonoDevelop 2.2.1を実行しています。

彼らはサイトでLINQを実装したことを宣伝していますが、_Enumerable.Range_やToArray()も見つかりません。どうしましたか?

46
Jader Dias

私はあなたがする必要があると思います:

  1. プロジェクトオプションで、「ランタイムバージョン」を「Mono/.Net 3.5」に設定します。
  2. System.Coreパッケージへの参照を追加(ソリューションエクスプローラーで参照を右クリック)
  3. モジュールに「using System.Linq」を追加します

その後、コードをコンパイルして実行する必要があります

よろしくお願いします

79
serge_gubenko

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でプロジェクトをコンパイルできますか?

はい。プロジェクトを右クリックして、[オプション]-> [ランタイム]を選択し、ドロップダウンリストから[2.0]を選択します。

4
Mark Rushakoff

「見つからない」とはどういう意味ですか? Intellisense? linqメソッドの多くは拡張メソッドであり、monodevelopはインテリセンスのメソッドをサポートしていない場合があります。その場合でも引き続き使用でき、コードはコンパイルされますが、ドロップダウンにはありません。

拡張メソッドについて

1
Tim Hoolihan