Ciao a tutti.

In fase di esecuzione testando delle classi mi dà questo errore. Mi era già successo altre volte, ma questa volta non riesco proprio a risolverlo.

Eseguendo questo codice
codice:
array arrayofitems = new array();
arrayofitems.array_add("host", "192.168.1.20");
vado a richiamare la classe array così definita

codice:
public class array
    {
        public int array_count;
        public arrayitem array_first;
        public arrayitem array_last;
        public debug array_debug;

        public array()
        {
            this.array_debug = new debug(debug.debug_type_file, lib.debug_default_file);
            this.array_first = new arrayitem(null, null, null, null);
            this.array_last = new arrayitem(null, null, null, null);
            this.array_count = 0;
        }

        public bool array_add(string pindex, string pvalue)
        {
            arrayitem lai, lai_temp;
            if (pindex == "")
                return false;
            if (this.array_index_exists(pindex))
                return this.array_set(pindex, pvalue);
            if (this.array_count == 0)
            {
                this.array_first = this.array_last = new arrayitem(pindex, pvalue, null, null);
                this.array_count++;
            }
            else
            {
                lai = new arrayitem(pindex, pvalue, null, null);
                lai_temp = this.array_last;
                this.array_last = lai;
                this.array_last.ai_prev = lai_temp;
                lai_temp.ai_next = this.array_last;
                if (this.array_count == 1)
                    this.array_first.ai_next = this.array_last;
                this.array_count++;
            }
            return true;
        }

        public bool array_index_exists(string pindex)
        {
            if (this.array_find(pindex).ai_index != null)
                return true;
            else
                return false;
        }

        public arrayitem array_find(string pindex)
        {
            arrayitem lai = new arrayitem();
            lai = this.array_first;
            while (pindex != lai.ai_index)
                lai = lai.ai_next;
            return lai;
           /* try
            {
                
                
            }
            catch (Exception exc)
            {
                this.array_debug.debug_log("[ERROR][array.array_find] " + exc.Message);
                return new arrayitem(null, null);
            }*/
        }
[...]
    }//array
dentro ci sono anche altri metodi che non ci interessano.
l'errore lo da sul metodo array_find() sulla riga
codice:
while (pindex != lai.ai_index)
so che di solito questo errore viene dato quando non si inizializza con new qualcosa, ma io non riesco a capire dove.
ho provato eccedendo di zelo ad inizializzare lai così
codice:
arrayitem lai= new arrayitem(null, null, null, null)
ma ovviamente la cosa non cambia.

pensavo che il problema fosse array_first, ma mi viene inizializzato da costruttore e valorizzato da array_add().

secondo voi dove è il problema?

grazie per l'attenzione e scusate la prolissità.

cyb