Foreach循环导致NullReferenceException

时间:2011-10-06 07:29:44

标签: c# string foreach nullreferenceexception arrays

在我的代码顶部(构造函数之前),我写道: String[] CAN = null;

此字符串数组在另一个函数中更新。

稍后在我的代码中我有这个foreach循环:

foreach (String str in CAN)
{
    if(str.Contains("18FA07FE"))
        cmdResult = true;
    else
        cmdResult = false;
}

我试过调试,在foreach语句的行中我可以看到CAN字符串数组已成功更新,现在包含1211个元素。

所以我真的不知道为什么它会给我这个例外。

3 个答案:

答案 0 :(得分:4)

如果问题只与您展示的代码和您描述的代码有关,而且数组中有元素,那么唯一可能的解释就是{{1}中的一个元素}是一个null元素,因此它不是foreach 本身抛出异常,但是这一行:

CAN

答案 1 :(得分:2)

可能其中一个字符串值为null

string [] CAN =  { "first", "second", null, "fourth" };

            foreach ( string str in CAN ) {
                if ( str.Contains( "fourth" ) ) {
                    Console.WriteLine( "Success" );
                }
            }

答案 2 :(得分:0)

你在哪里获得NullPointer?是循环还是if?我猜你的数组包含一个'null'元素,它会抛出这个NPE。