是否可以在 C# Interactive 上使用 Immutable.Collections?

Is it possible to use Immutable.Collections on C# Interactive?

我在 Visual Studio 2019 上使用 C# Interactive window(即 REPL),并进行了最新更新。我想使用不可变集合,但无法让它们工作。 (我在编译的 C# 项目中使用它们没有问题)。

奇怪的是,如果我输入(进入 C# Interactive window):

using System.Collections.Immutable;

C# Interactive 接受这一点,暗示它可以看到命名空间。但是,如果我随后尝试使用它,例如:

var a = ImmutableList.Create<int>(1,2,3);

我收到错误消息:“名称 'ImmutableList' 在当前上下文中不存在。”如果我完全限定 ImmutableList 的名称,这没有什么区别。

可能我不了解哪个版本的 .NET C# Interactive 正在运行。我知道 Immutable.Collections 现在在 .NET Core 3 中是原生的,但也许 C# Interactive 不使用这个版本? (您如何 tell/specify C# Interactive 中的 .NET 版本?)。即便如此,它不抗议 using 指令似乎很奇怪。

您需要先引用 System.Collections.Immutable 程序集。为此,请使用:

#r "System.Collections.Immutable.dll"

现在您可以使用 System.Collections.Immutable 命名空间中的对象。