在部分中迭代键入的列表

时间:2010-12-17 19:45:55

标签: vb.net list .net-2.0 c#-2.0 iteration

我有以下列表

Dim ordersToUpdate as New List(Of OrderUpdate)

我正在使用“For Each”来迭代和更新旧版数据库

For Each order In ordersToUpdate

  UpdateDB(order)

Next

当“ordersToUpdate”很大时,我在数据库上遇到了LOCKING问题。而不是让Threading.Thread.Sleep暂停,有没有一种正确的方法将列表分成几个部分,例如一次迭代100个?

1 个答案:

答案 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

Reference