我的代码有问题。
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;
}
但我需要在xATmax和yATmax下一行的价值......有人可以帮助我吗?
答案 0 :(得分:21)
然后不要使用foreach。使用'for循环'。你的代码有点乱,但你可以做类似......
for (Int32 i = 0; i < dt_pattern.Rows.Count; i++)
{
double yATmax = ToDouble(dt_pattern.Rows[i+1]["Ampl"].ToString()) + AT;
}
请注意,在最后一行中你必须考虑到没有'i + 1'所以你必须使用if语句来捕获它。
答案 1 :(得分:4)
for (int i=0; i<dt_pattern.Rows.Count; i++)
{
DataRow dr = dt_pattern.Rows[i];
}
在循环中,您现在可以引用第i + 1行(假设有一个i + 1)
答案 2 :(得分:0)
for (Int32 i = 1; i < dt_pattern.Rows.Count - 1; i++){
double yATmax = ToDouble(dt_pattern.Rows[i]["Ampl"].ToString()) + AT;
}
如果您想解决+ 1期问题