这可能是重复的,但我无法解决。我正在迭代数据库/ dataTable中的每个数据,然后使用forEach显示它。虽然我想在first
和last
项目上执行某些操作。
For Each dtrow In gpsDtable.Rows
If ReferenceEquals(Collection.Item(Collection.Count - 1), dtrow) Then
'do something for the last item in loop
'I also want to do something for the first item
End If
'do things in loop
Next
刚刚看到这个代码片段..而且我收到此错误
Reference to a non share member requires an object reference.
由于我不太清楚这是什么意思,所以我要问...... 如果错误,请重新编写代码。实际上,if语句是一个错误:P
答案 0 :(得分:1)
Dim i as Integer
For Each dtrow In gpsDtable.Rows
If i =0 Then
'Do Something
Else If i = gpsDtable.Rows.count-1 Then
'Do Something
End If
i=i+1
Next
答案 1 :(得分:0)
您在代码中引用了非共享成员,但未能提供对象引用。您不能使用类名本身来限定未共享的成员。必须首先将实例声明为对象变量,然后由变量名称
引用答案 2 :(得分:0)
我猜,该代码段并不是一个确切的代码。您希望使用自己的Collection变量(在本例中为Collection.Item
)更改Collection.Count
和gpsDtable.Rows
,例如:
For Each dtrow In gpsDtable.Rows
If ReferenceEquals(gpsDtable.Rows(gpsDtable.Rows.Count - 1), dtrow) Or ReferenceEquals(gpsDtable.Rows(0), dtrow) Then
'do something for the last and first item in loop
End If
'do things in loop
Next
或者,如果您更喜欢使用foreach
循环计数器来确定第一次和最后一次迭代,那么我认为它与使用标准for循环相同:
For i As Integer = 0 To gpsDtable.Rows.Count - 1
If i = 0 Or i = gpsDtable.Rows.Count - 1 Then
'do something for the first and last item in loop
End If
'do things in loop
Next