DataTable中当前DataRow的索引

时间:2009-05-22 04:42:34

标签: asp.net

For Each dr As myDAL.UsersRow In data
   str.AppendLine(dr.UserName)
Next

在上面的代码中,我还需要包含行索引,使其类似于

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

我怎样才能做到这一点?

P.S。 data不是DataTable,而是myDAL.UsersRow

的通用列表

2 个答案:

答案 0 :(得分:4)

如果数据是您建议的List<myDAL.UsersRow>,则可以使用“for”循环而不是“for each”循环:

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

但是,如果您暗示您的“数据”列表与原始DataTable的行的顺序不同,您可以使用DataRowCollection.IndexOf方法在原始表中找到该行:

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

答案 1 :(得分:1)

在ForEach循环之前声明一个计数器变量,并在其中增加它。

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