Obtenir la valeur de la ligne dans Datatable c #
Question
j'ai un problème avec mon code.
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;
}
mais il me faut à xATmax et à yATmax la valeur de la rangée suivante ... Quelqu'un peut-il m'aider?
La solution
Ne pas utiliser un foreach alors. Utilisez un "pour la boucle". Votre code est un peu foiré, mais vous pourriez faire quelque chose comme ...
for (Int32 i = 0; i < dt_pattern.Rows.Count; i++)
{
double yATmax = ToDouble(dt_pattern.Rows[i+1]["Ampl"].ToString()) + AT;
}
Notez que vous devrez tenir compte lors de la dernière ligne, il n'y aura pas de 'i + 1', vous devrez donc utiliser une instruction if pour intercepter cela.
Autres conseils
for (int i=0; i<dt_pattern.Rows.Count; i++)
{
DataRow dr = dt_pattern.Rows[i];
}
Dans la boucle, vous pouvez maintenant référencer la ligne i + 1 (en supposant qu'il y ait un i + 1)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow