2009-05-22 8 views
0
For Each dr As myDAL.UsersRow In data 
    str.AppendLine(dr.UserName) 
Next 

Dans le code ci-dessus, je dois aussi inclure l'index de ligne pour que ce soit quelque chose commeIndex du DataRow courant dans un DataTable

str.AppendLine(dr.IndexNumber & " " & dr.UserName) 

Comment puis-je y parvenir?

P.S. data n'est pas un DataTable mais une liste générique de myDAL.UsersRow

Répondre

4

Si des données est un List<myDAL.UsersRow> comme vous le suggérez, vous pouvez utiliser une boucle « pour » plutôt que « pour chaque » boucle:

for i = 0 to data.Count - 1 
    str.AppendLine(i & " " & data[i].UserName) 
next 

Si, cependant, vous sous-entendez que votre liste « données » ne sont pas dans le même ordre que les lignes de DataTable d'origine, vous pourriez être en mesure d'utiliser la méthode DataRowCollection.IndexOf pour localiser la ligne dans la table d'origine:

for each dr as myDAL.UsersRow in data 
    str.AppendLine(dr.Table.Rows.IndexOf(dr) & " " & dr.UserName) 
next 
1

Déclarez une variable de compteur avant la boucle ForEach et incrémentez-la à l'intérieur.

Dim counter As Integer = 0 
    For Each dr As myDAL.UsersRow In data 
     counter = counter + 1 
     str.AppendLine(counter.ToString() & " " & dr.UserName) 
    Next 
Questions connexes