2009-06-21 4 views
7

Ho un problema con il mio codice.Ottieni il valore della riga nel Datatable C#

foreach (DataRow dr in dt_pattern.Rows) 
    { 
     part = dr["patternString"].ToString(); 
     if (part != vpart) 
     { 
     System.Console.WriteLine(part); 
     System.Console.WriteLine("Geben Sie bitte für den Abschnitt die AT ein: "); 
     temp = System.Console.ReadLine(); 
     AT = ToDouble(temp); 
     dr["AT"] = AT; 

     double xATmax = ToDouble(dr["Ampl"].ToString()); 
     double x = ToDouble(dr["Time"].ToString()); 

     double yATmax = ToDouble(dr["Ampl"]+1.ToString()) + AT; 
     double y = ToDouble(dr["Ampl"].ToString()); 

     dr["alphaATmin"] = Gradient(x,xATmax,y,yATmax); 
     System.Console.WriteLine(dr["alphaATmin"]); 
     } 
     vpart = part;   
    } 

ma ho bisogno di xATmax e yATmax il valore della riga successiva ... Qualcuno può aiutarmi?

risposta

20

Non utilizzare quindi un foreach. Utilizzare un ciclo for. Il codice è un po 'incasinato, ma si potrebbe fare qualcosa di simile ...

for (Int32 i = 0; i < dt_pattern.Rows.Count; i++) 
{ 
    double yATmax = ToDouble(dt_pattern.Rows[i+1]["Ampl"].ToString()) + AT; 
} 

nota che si dovrebbe prendere in considerazione durante l'ultima riga non ci sarà 'i + 1' quindi dovrete usare una dichiarazione if per capirlo.

4
for (int i=0; i<dt_pattern.Rows.Count; i++) 
{ 
    DataRow dr = dt_pattern.Rows[i]; 
} 

Nel ciclo, è possibile ora riferimento riga i + 1 (supponendo che non v'è un i + 1)