Как использовать LINQ в моно?
Я не могу заставить System.Linq(aka LINQ to Objects) работать. Я запускаю MonoDevelop 2.2.1 в Ubuntu 10 Lucid Lynx с Mono 2.4.4.
Они рекламируют на своем сайте, что они реализовали LINQ, но я даже не могу найти Enumerable.Range
или ToArray()
. Что не так?
Ответы
Ответ 1
Я предполагаю, что вам нужно будет сделать:
- В настройках вашего проекта установите для параметра "Версия времени выполнения" значение "Моно/.Net 3.5"
- Добавить ссылку на пакет System.Core(ссылки правой кнопки мыши в обозревателе решений)
- Добавить "using System.Linq" в ваш модуль
после этого ваш код должен скомпилировать и выполнить
надеюсь, что это поможет, считает
Ответ 2
Используете ли вы компилятор 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:
Можно ли скомпилировать мой проект с помощью gmcs?
Да. Щелкните правой кнопкой мыши на своем проекте, выберите "Опции" → "Время выполнения" и выберите "2.0" в раскрывающемся списке.
Ответ 3
Что вы имеете в виду, когда говорите "не можете найти"? Intellisense? Многие из методов linq являются методами расширения, а monodevelop может не поддерживать те, которые используются в intellisense. В этом случае вы все равно можете использовать их, и ваш код должен компилироваться, он просто не находится в раскрывающихся списках.
О методах расширения