Не могу создать массив объектов списка - PullRequest
5 голосов
/ 10 февраля 2012

У меня есть строка кода, подобная этой:

List<string>[] apples = new List<string>()[2];

Его цель - просто создать массив объектов List.Когда я пытаюсь скомпилировать мой код, приведенная выше строка генерирует эту ошибку:

Невозможно неявно преобразовать тип 'string' в 'System.Collections.Generic.List []

Я не смог найти много на предмет создания массива объектов List (на самом деле только этот поток), возможно, потому что ни одна поисковая система не будет искать скобки.

Isединственный способ создать коллекцию списков, чтобы поместить их в другой список, как показано ниже?

List<List<string>> apples = new List<List<string>>(); //I've tried this and it works as expected

Спасибо за любые предложения, мне действительно просто любопытно, почему первая строка кода (список[] пример) не работает.

Ответы [ 3 ]

6 голосов
/ 10 февраля 2012

Вы можете сделать это. Синтаксис будет:

List<string>[] apples = new List<string>[2];

Обратите внимание, что при этом выделяется только массив ссылок - вам необходимо создать отдельные элементы списка перед их использованием:

List<string>[] apples = new List<string>[2];
apples[0] = new List<string>();
apples[1] = new List<string>();

Кроме того, вы можете использовать синтаксис инициализации коллекции (хорошо работает для небольшого числа фиксированных элементов), то есть:

List<string>[] apples = new[] { new List<string>(), new List<string>() };
6 голосов
/ 10 февраля 2012

Попробуйте это:

List<string>[] apples = new List<string>[2];

Вы делаете инициализацию каждого списка впоследствии:

apples[0] = new List<string>();
3 голосов
/ 10 февраля 2012
        var listArray = new List<string>[2];
        for (var i = 0; i < listArray.Length; i++)
        {
            listArray[i] = new List<string>();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...