3

I have defined a new class type called Hotspot. I need 2 dynamic array of Hotspot (I used List) and a third one that allow me to "switch" between them. Here my code:

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

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

but arrays doesn't work. I just need it so I can easily access to items/locations array.

In F# I did it in this way:

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

let arrays = [|items; locations|]

but I can't do the same thing in C#. Some help?

4

2 に答える 2

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

itemslocationsリストとして宣言(およびインスタンス化)されます。リストは配列ではなく、配列として割り当てようとしています。それらを配列に変換するか、代わりにリスト以外の配列をまったく使用しないでください。

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 に答える