Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    37

    Array e IndexOutOfRange exception

    Salve, è da un po' che sono bloccato su un problema abbastanza sciocco (almeno penso che sia sciocco)

    In pratica ho un stringa in una variabile di sessione suddivisa con caratteri speciali come $ o £
    Inizialmente faccio lo split su £ e mi creo un array preliminare, quindi faccio lo split su $ e dovrei stampare le stringhe risultanti. Il problema è che quando accedo all'array in un ciclo con un suo indice tutto funziona, ma quando cerco di accedere direttamente all'elemento indicando la sua posizione (1, 2, ecc.) mi da errore di "Indice oltre i limiti della matrice". Posto un po' di codice per farmi capire meglio, spero sappiate darmi una mano!

    codice:
    String[] ordineSplit = Session["ORDINE"].ToString().Split('£'); // in Session["ORDINE"] c'è la stringa con i delimitatori £ e $
    char[] delimitatore = new char[] { '$' };
    Table tabella = new Table();
    for (int k = 0; k < ordineSplit.Length; k++)
    {
        TableRow tabellaRiga = new TableRow();
        String[] prova = ordineSplit[k].ToString().Split(delimitatore); // qui è presente del testo nella forma testo1$testo2$testo3, quindi sempre e solo 3 stringhe
        tabellaRiga.ID = prova[0] + "_";
    
        TableCell tabellaCella = new TableCell();
        tabellaCella.ID = prova[0];
        tabellaCella.Text = prova[1];  // qui mi da errore IndexOutOfRange
        tabellaRiga.Controls.Add(tabellaCella);
        ...
        tabella.Controls.Add(tabellaRiga);
    }
    www.ariadifan.it - Ariadineve Official Fan Club -

    God save the Queen

    Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something

  2. #2
    Ma l'eccezione esattamente dove la da, qui?

    tabellaRiga.ID = prova[0] + "_";

    Sei sicuro che in quell'array ci siano elementi?
    Davide

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    37
    Nell'array ci sono elementi, perché se uso un ciclo for me li stampa correttamente.
    Il problema è se provo ad accederci direttamente

    L'errore è qui:

    codice:
    tabellaCella.Text = prova[1];
    www.ariadifan.it - Ariadineve Official Fan Club -

    God save the Queen

    Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something

  4. #4
    IndexOutOfRange significa che l'elemento 1 non esiste. Sei sicuro che ci sia? Magari lo split non va come prevedi, e c'è 1 solo elemento nell'array.

    Prova a vedere il valore di prova.Lenght prima di provare ad accedere all'elemento
    Davide

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.