Pregunta

Tengo un problema con mi código.

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;          
    }

pero necesito en xATmax y yATmax el valor de la próxima fila ... ¿Alguien puede ayudarme?

¿Fue útil?

Solución

No uses un foreach entonces. Use un 'for loop'. Su código está un poco desordenado, pero podría hacer algo como ...

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

Tenga en cuenta que deberá tener en cuenta durante la última fila que no habrá 'i + 1', por lo que deberá usar una instrucción if para captar eso.

Otros consejos

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

En el bucle, ahora puede hacer referencia a la fila i + 1 (suponiendo que haya un i + 1)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top