如何在 Mono 中使用 LINQ?
Posted
技术标签:
【中文标题】如何在 Mono 中使用 LINQ?【英文标题】:How to use LINQ in Mono? 【发布时间】:2011-02-12 16:20:15 【问题描述】:我无法使 System.Linq(又名 LINQ to Objects)工作。我在带有 Mono 2.4.4 的 Ubuntu 10 Lucid Lynx 中运行 MonoDevelop 2.2.1。
他们在他们的网站上宣传他们实施了 LINQ,但我什至找不到 Enumerable.Range
或 ToArray()
。怎么了?
【问题讨论】:
【参考方案1】:我猜你需要做的是:
-
在您的项目选项中,将“运行时版本”设置为“Mono/.Net 3.5”
添加对 System.Core 包的引用(在解决方案资源管理器中右键单击引用)
将“使用 System.Linq”添加到您的模块中
之后你的代码应该编译并执行
希望这有帮助,问候
【讨论】:
我只需要添加对 System.Core 的引用 你在哪里设置运行时版本?我在项目设置中没有看到这样的选项 奇怪的是,它可以在不引用 System.Core 的情况下为我编译和运行,但我没有智能感知,并且 using 语句的“Linq”以红色突出显示。添加 System.Core 解决了这个问题。【参考方案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
进行编译,请按照the MonoDevelop FAQ 的说明执行以下指令:
我可以用 gmcs 编译我的项目吗?
是的。右键单击您的项目,选择“选项”->“运行时”,然后从下拉列表中选择“2.0”。
【讨论】:
【参考方案3】:你说“找不到”是什么意思?智能感知?很多 linq 方法是扩展方法,monodevelop 可能不支持 intellisense 中的方法。在这种情况下,您仍然可以使用它们并且您的代码应该编译,它只是不在下拉列表中。
About extension methods
【讨论】:
以上是关于如何在 Mono 中使用 LINQ?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Visual Studio 2017构建Gtk#/ Mono应用程序
Mono:如何在 Makefile.am 中添加 DLL 引用?