2012-04-08 28 views
5

Po prostu chcę uzyskać tablicę 2 wymiarów listy w języku C#. W mojej myśli, poniżej powinno działać, ale tak się nie stało, 1 wymiarowa tablica Listy działa. Używam Unity3D z Mono, jednak myślę, że to problem związany z językiem.Tablica 2-wymiarowa listy w języku C#?

List<MyType>[,] twoDArrayofList;//don't work, it's type is List<MyType> 
List<MyType>[] oneDArrayofList;//it's works, the type is List<MyType> 

Ktoś wie, co jest nie tak? Dziękuję Ci.

+1

patrz: http://stackoverflow.com/questions/665299/are-2-dimensional-lists-possible-in-c – Marshal

+0

dziękuję marszałek , Sprawdzę to. –

+0

@Marshal Sprawdziłem to pytanie, to inny problem, w każdym razie dziękuję za szybką reakcję –

Odpowiedz

5

Co masz na myśli przez "nie działa"? Jaki błąd dostałeś?

nie wiem o mono (lub Unity3D), ale po prostu próbowałem następujące w projekcie .NET i dostał wyniki I spodziewanych:

List<string>[,] strings = new List<string>[2, 2]; 
strings[0, 0] = new List<string> { "One" }; 
strings[0, 1] = new List<string> { "Two" }; 
strings[1, 0] = new List<string> { "Three" }; 
strings[1, 1] = new List<string> { "Four" }; 
+0

+1: Myślałem o tym samym. – Douglas

+2

Rozumiem, to jest błąd IDE MonoDeveloper, IDE nie może rozpoznać tej sytuacji i podać mi niewłaściwy typ, co za wstyd. Dzięki za odpowiedź pozwól mi zacząć sprawdzać IDE –

0

Jest to starsza poczta, ale przyszło w moim poszukiwaniu podobnej odpowiedzi. Odkryłem, że tworzenie Słownika zamiast Listy spełnia moje potrzeby. Nie możesz iterować według indeksu, ale jeśli masz dyskretną listę i robisz iterację poprzez pierwszy ciąg "Klucz", możesz łatwo uzyskać drugi ciąg "Wartość".

Oto post stackoverflow z przykładów: What is the best way to iterate over a Dictionary in C#?