2-мерный массив списка в С#?

Мне просто нужно получить массив размером 2 из списка в С#. По моему мнению, ниже должно работать, но это не так, массив 1 измерений List работает. Я использую Unity3D с Mono, но я думаю, что это проблема, связанная с языком.

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

Кто-нибудь знает, что случилось? Спасибо.

+5
источник поделиться
2 ответа

Что значит "не работает"? Какая ошибка вы получаете?

Я не знаю о Mono (или Unity3D), но я просто попробовал следующее в .NET-проекте и получил ожидаемые результаты:

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" };
+5
источник

Это более старое сообщение, но оно появилось в моем поиске аналогичного ответа. Я обнаружил, что создание словаря вместо списка отвечает моим потребностям. Вы не можете перебирать по индексу, но если у вас есть дискретный список, и вы выполняете итерацию через первую строку "Ключ", вы можете легко получить вторую строку "Значение".

Вот сообщение stackoverflow с примерами: Каков наилучший способ перебора словаря на С#?

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос