2012-03-26 61 views
0

有1000个单元格的数组。我已经放入了50个对象,所以剩下950个单元格(未使用的引用)。如何检查参考是否设置为对象

我想循环放置在数组中的50个对象,然后离开循环。 眼下,循环进入阵列[51],我得到的错误:

**Object reference not set to an instance of an object.** 

我试过条件if (array[i] != null)但它不工作。

编辑:

for (i = 0; i < 1000; i++) 
    { 
    if (tablica_postaci[i] != null) 
     { 
     ...(actions)... 
     } 
    } 

0-49单元填充(更多的代码),我没碰过休息。不过,还是有这个错误。 我希望我的程序在完成第50个元素后不要采取行动

+2

我想我们需要看到更多的代码。 – Jodrell 2012-03-26 11:30:49

+1

为什么'if(array [i]!= null)'不起作用?哪个是'array [50]'值?你是否正确初始化数组?向我们展示更多代码... – Marco 2012-03-26 11:31:42

+0

请发布您的代码 – pylover 2012-03-26 11:32:01

回答

1

下面是一个示例,您可以调用break关键字以退出循环。

Company[] companies = new Company[1000]; 
for (int i = 0; i < 50; i++) 
{ 
    companies[i] = new Company(); 
} 

for (int i = 0; i < companies.Length; i++) 
{ 
    if (companies[i] == null) 
      { 
       break; 
      } 

} 
+0

我知道,我可以使用你的想法与休息或只是条件!= null,不幸的是它不是在我的程序(我虽然还有其他方式做到这一点,我做错了) – Patryk 2012-03-26 11:49:33

+0

你可以发布整个代码? – daryal 2012-03-26 11:52:15

1

为什么不使用where子句,然后通过数组循环?

var itemsThatAreNotNull = array.Where(a => a != null); 

foreach (var item in itemsThatAreNotNull) 
{ 
    // do whatever you want to do with the item 
    Console.WriteLine(item.SomeProperty); 
}