2012-03-26 6 views
0

Es gibt ein Array mit 1000 Zellen. Ich habe dort 50 Objekte eingefügt, also sind 950 Zellen (nicht benutzte Referenzen) übrig.So prüfen Sie, ob eine Referenz auf ein Objekt gesetzt ist oder nicht

Ich möchte 50 Objekte im Array durchlaufen Schleife, dann verlassen Sie die Schleife. Gerade jetzt, Schleife in Array Eingabe [51] und ich erhalte die Fehlermeldung:

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

Ich habe versucht Zustand if (array[i] != null) aber es funktioniert nicht.

bearbeiten: (mehr Code)

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

0-49 Zellen gefüllt sind, habe ich den Rest nicht berührt. Trotzdem, da ist dieser Fehler. Ich möchte, dass mein Programm nicht die Aktionen nach der Fertigstellung mit 50. Element

+2

Ich denke, wir müssen mehr Code sehen. – Jodrell

+1

Warum 'if (array [i]! = Null)' funktioniert nicht? Was ist 'array [50]' Wert? Haben Sie das Array richtig initialisiert? Zeigen Sie uns mehr Code bitte ... – Marco

+0

Bitte geben Sie Ihren Code – pylover

Antwort

1

Hier ist ein Beispiel, können Sie einfach brechen Schlüsselwort zu verlassen aus der Schleife.

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

Ich weiß, ich kann Ihre Idee mit Pause oder nur Bedingung! = Null, Leider funktioniert es nicht in meinem Programm (ich, obwohl es eine andere Möglichkeit zu tun, und ich mache es falsch) – Patryk

+0

können Sie den gesamten Code posten ? – daryal

1

Warum gehst du nicht einfach where-Klausel verwenden und dann die Schleife durch das Array?

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); 
} 
Verwandte Themen