gpt4 book ai didi

.net - 当你在数据表上循环时如何删除行

转载 作者:行者123 更新时间:2023-12-04 13:07:31 25 4
gpt4 key购买 nike

For Each Dr As DataRow In InvoiceDT.Rows
Dim DrResult As Array = PaymentInvoiceDT.Select("Amount='" & Dr("Amount").ToString() & "'")
If DrResult.Length > 0 Then
''some code
Else
InvoiceDT.Rows.remove(Dr)
End If
Next

它给出了错误,因为当您更改数据表中的某些内容时,其索引会更改。

最佳答案

您将无法在 For Each 循环中执行此操作,因为当您删除某些内容时,集合已更改并且您无法再枚举它。

你需要的是一个反向的 For 循环。

For i as Integer = Invoice.Rows.Count -1 to 0 Step -1
Dim DrResult As Array = PaymentInvoiceDT.Select("Amount='" & Invoice.Rows(i).("Amount").ToString() & "'")
If DrResult.Length > 0 Then
'some code
Else
InvoiceDT.Rows.remove(InvoiceDT.Rows(i))
End If
Next

即使您删除行,这仍然有效,因为您没有接触的行没有更改其索引并且它不使用枚举。

关于.net - 当你在数据表上循环时如何删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com