سؤال

ولدي مشكلة مع قانون بلدي.

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 القيمة من الصف المقبل ... شخص يمكن أن تساعدني؟

هل كانت مفيدة؟

المحلول

لا أميل استخدام foreach ذلك الحين. استخدام "للحلقة. وقليلا افسدت التعليمات البرمجية الخاصة بك حتى ولكن هل يمكن أن تفعل شيئا من هذا القبيل ...

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

ملاحظة عملتم أن تأخذ بعين الاعتبار خلال الصف الأخير لن يكون هناك "ط + 1" لذلك سوف تضطر إلى استخدام تعليمة if للقبض على ذلك.

نصائح أخرى

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

في حلقة، يمكنك الآن مرجع الصف ط + 1 (على افتراض وجود ط + 1)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top