【问题标题】:Iterate Typed List in sections分段迭代类型列表
【发布时间】:2010-12-17 19:45:55
【问题描述】:

我有以下列表

Dim ordersToUpdate as New List(Of OrderUpdate)

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

For Each order In ordersToUpdate

  UpdateDB(order)

Next

当“ordersToUpdate”很大时,我在数据库上遇到了锁定问题。除了暂停 Threading.Thread.Sleep 之外,是否有适当的方法将列表分成多个部分,例如一次迭代 100 个?

【问题讨论】:

  • 什么是遗留数据库?你有什么样的锁定问题?向我们展示 UpdateDB 函数

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


【解决方案1】:
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

【讨论】:

    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 2019-04-20
    • 2012-09-02
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多