3

我已经定义了一个新的类类型,叫做Hotspot. 我需要 2 个动态热点数组(我使用了列表)和第三个允许我在它们之间“切换”的数组。这是我的代码:

List<Hotspot> items = new List<Hotspot>();
List<Hotspot> locations = new List<Hotspot>();

Hotspot[][] arrays = new Hotspot[][]{items, locations};

arrays不起作用。我只需要它,这样我就可以轻松访问items/locations数组。

在 F# 中,我是这样做的:

let mutable items = new ResizeArray<Hotspot>()
let mutable locations = new ResizeArray<Hotspot>()

let arrays = [|items; locations|]

但我不能在 C# 中做同样的事情。一些帮助?

4

2 回答 2

4
List<Hotspot>[] arrays = new List<Hotspot>[]{items, locations};
于 2012-07-08T21:21:01.647 回答
3

items并被locations声明(和实例化)为列表。列表不是数组,您试图将它们分配为数组。将它们转换为数组或根本不使用数组而是使用列表。

Hotspot[][] arrays = new Hotspot[][]{ items.ToArray(), locations.ToArray() };
//or
List<Hotspot>[] lists = new[] { items, locations };

ps,F#ResizeArray<T>本质上是 .NET 的别名List<T>。因此,实际上,arrays您的 F# 示例中的变量等同于lists在我上面的示例中,您创建了一个列表数组。

于 2012-07-08T21:22:00.930 回答