Je boucle en boucle à chaque rangée dans un datatable:
foreach (DataRow row in dt.Rows) {}
Je voudrais obtenir l'index de la ligne en cours dans le dt datatable. par exemple:
int index = dt.Rows[current row number]
Comment puis-je faire cela?
int index = dt.Rows.IndexOf(row);
Mais vous feriez probablement mieux d'utiliser une boucle for au lieu de foreach.
Si vous avez besoin de l'index de l'élément avec lequel vous travaillez, l'utilisation d'une boucle foreach
constitue une méthode incorrecte d'itération sur la collection. Changez la façon dont vous bouclez pour avoir l'index:
for(int i = 0; i < dt.Rows.Count; i++)
{
// your index is in i
var row = dt.Rows[i];
}
Pourquoi n'essaies-tu pas cela
for(int i=0; i < dt.Rows.Count; i++)
{
// u can use here the i
}
Vous avez deux options ici.
La ligne individuelle représente simplement des données, elle ne saura donc pas dans quelle ligne elle se trouve.
Vous savez que DataRow est la ligne d'un DataTable correct?
Ce que vous avez actuellement en boucle à travers chaque ligne. Il vous suffit de suivre le nombre de lignes pour obtenir la ligne actuelle.
int i = 0;
int index = 0;
foreach (DataRow row in dt.Rows)
{
index = i;
// do stuff
i++;
}
Essayer:
int i = Convert.ToInt32(dt.Rows.Count);
Je pense que c'est le plus court, donc le moyen le plus simple.
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);
}
pour obtenir le nombre de lignes dans un datatable: dt.Rows.Count