Невозможно увеличить целое число внутри цикла foreach

У меня есть метод C# для преобразования из списка в массив. Код выглядит так:

public String[] ConvertToArray(List<InstallationControl> list)
        {
            String[] Array = null;
            Int32 i = 0;
            foreach (var item in list)
            {
                Array[i] = item.Value.ToString();
                i++;
            }

            return Array;
        }

Тем не менее, это всегда дает мне исключение Null. Может кто-то объяснить это мне?

3 ответа

Вы не инициализируете массив, который пытаетесь заполнить.

String[] Array = new String[list.Count]

Должен решить вашу проблему.

Это создаст массив строк [list.Count]. Вы должны знать, что каждая из этих строк равна нулю, пока вы не присвоите значение.

Массивы MSDN

Вам нужно инициализировать массив

String[] Array = new String[list.Count];

или просто

String[] Array =list.Select(x=>x.Value.ToString()).ToArray();

Измените строку для инициализации массива

String[] Array = new String[list.Count];

Должно сработать

Другие вопросы по тегам