Ich durchlaufe jede Zeile in einer Datentabelle:
foreach (DataRow row in dt.Rows) {}
Ich möchte den Index der aktuellen Zeile in der dt-Datentabelle erhalten. zum Beispiel:
int index = dt.Rows[current row number]
Wie mache ich das?
int index = dt.Rows.IndexOf(row);
Es ist jedoch wahrscheinlich besser, eine for-Schleife anstelle von foreach zu verwenden.
Wenn Sie den Index des Elements benötigen, mit dem Sie arbeiten, ist die Verwendung einer foreach
-Schleife die falsche Methode, um die Sammlung zu durchlaufen. Ändern Sie die Art und Weise, in der Sie einen Loop ausführen, sodass Sie den Index haben:
for(int i = 0; i < dt.Rows.Count; i++)
{
// your index is in i
var row = dt.Rows[i];
}
Warum versuchst du es nicht?
for(int i=0; i < dt.Rows.Count; i++)
{
// u can use here the i
}
Sie haben hier zwei Möglichkeiten.
Die einzelne Zeile stellt lediglich Daten dar und weiß daher nicht, in welcher Zeile sie sich befindet.
Sie wissen, dass DataRow die Zeile einer DataTable richtig ist?
Was Sie derzeit bereits durchlaufen, ist jede Zeile. Sie müssen nur nachverfolgen, wie viele Zeilen es gibt, um die aktuelle Zeile zu erhalten.
int i = 0;
int index = 0;
foreach (DataRow row in dt.Rows)
{
index = i;
// do stuff
i++;
}
Versuchen:
int i = Convert.ToInt32(dt.Rows.Count);
Ich denke es ist der kürzeste, also der einfachste Weg.
ArrayList check = new ArrayList();
for (int i = 0; i < oDS.Tables[0].Rows.Count; i++)
{
int iValue = Convert.ToInt32(oDS.Tables[0].Rows[i][3].ToString());
check.Add(iValue);
}
um die Anzahl der Zeilen in einer Datentabelle zu erhalten: dt.Rows.Count