Инициализация массива списков в C# - PullRequest
0 голосов
/ 05 февраля 2020

Я новичок в C# и мне сложно разобраться, как использовать списки, массивы и коллекции в классах / объектах. Я нашел тонну постов с примерами, но думаю, что просто пока не знаю, как правильно хранить вещи. Я пытаюсь использовать массив с 3 списками в качестве небольшого банка памяти. Вот где я сейчас нахожусь, запуск был просто отчаянной функцией хе-хе.

namespace MemoryController
{
    public class MemController
    {
        public int MemSlot { get; set; }
        public List <String>[] EnteredDigits { get; set; }
        public string MyOperator { get; set; }
        public MemController()


        {
          MemSlot = 0;
          List<string>[] EnteredDigits = new List<String>[3];

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

            StartUp();
        }

       public void StartUp()
        {
            for (int i = 0; i < EnteredDigits.Length; i++)
            {
                EnteredDigits[i] = new List<string>();
            }
        }

    }

Ответы [ 2 ]

2 голосов
/ 05 февраля 2020

Вы можете сделать что-то подобное с Enumerable.Range, проецируя инициализированный List<T> в массив

var enteredDigits = Enumerable.Range(0, 3)
                              .Select(x => new List<string>())
                              .ToArray();

Дополнительные ресурсы

Enumerable.Range (Int32, Int32)

Создает последовательность целых чисел в указанном диапазоне.

Enumerable.Select

Проецирует каждый элемент последовательности в новую форму.

Enumerable.ToArray (IEnumerable)

Создает массив из IEnumerable<T>.

1 голос
/ 05 февраля 2020

Вы можете использовать инициализатор следующим образом:

var enteredDigits = new List<string>[] 
{
    new List<string>(),
    new List<string>(),
    new List<string>()
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...