我有以下列表
Dim ordersToUpdate as New List(Of OrderUpdate)
我正在使用“For Each”来迭代和更新旧版数据库
For Each order In ordersToUpdate
UpdateDB(order)
Next
当“ordersToUpdate”很大时,我在数据库上遇到了LOCKING问题。而不是让Threading.Thread.Sleep暂停,有没有一种正确的方法将列表分成几个部分,例如一次迭代100个?
答案 0 :(得分:0)
Public Function SplitList(Of T)(ByVal list As List(Of T), ByVal size As Integer) As List(Of List(Of T))
Dim result As New List(Of List(Of T))
For i = 0 To CInt(Math.Ceiling(list.Count / size)) - 1
result.Add(New List(Of T)(list.GetRange(i * size, Math.Min(size, list.Count - (i * size)))))
Next
Return result
End Function