不能在foreach循环内增加整数

时间:2013-09-23 16:52:16

标签: c# arrays list methods argumentnullexception

我有一个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 个答案:

答案 0 :(得分:4)

您没有初始化要填充的阵列。

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

应该解决你的问题。

这将创建一个[list.Count]字符串数组。您应该知道,每个字符串都为空,直到您为它们分配值。

MSDN Arrays

答案 1 :(得分:1)

您需要初始化数组

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

或只是

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

答案 2 :(得分:0)

更改行以初始化数组

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

应该工作