自定义类型数组的数组

时间:2012-07-08 21:16:45

标签: c# .net arrays

我已经定义了一个名为Hotspot的新类类型。我需要2个热点的动态数组(我使用List)和第三个允许我进行"切换"它们之间。这是我的代码:

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#中做同样的事情。一些帮助?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

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

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

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