You need to enable JavaScript to run this app. C#/VB.NET 如何从工时表列表中提取休息时间存入独立列表
优惠活动
大模型
产品
解决方案
定价
更多

C#/VB.NET 如何从工时表列表中提取休息时间存入独立列表

实现思路
  • 无需将BindingList转换为DataTable,直接通过索引遍历原始工时BindingList即可完成提取,逻辑更简洁高效。
  • 核心逻辑为取相邻的两条工时记录,按规则拼接生成休息时段,同时按日期过滤跨天的无效时段。
代码实现示例
' 初始化休息时段列表
breakView = New List(Of BreaksMA)()

' 遍历原工时BindingList,只需遍历到倒数第二条即可
For i As Integer = 0 To 你的工时BindingList实例.Count - 2
    Dim currentRecord = 你的工时BindingList实例(i)
    Dim nextRecord = 你的工时BindingList实例(i + 1)
    
    ' 校验两条记录属于同一天,符合按日期区分的要求
    If currentRecord.日期属性名 = nextRecord.日期属性名 Then
        Dim breakItem As New BreaksMA() With {
            .ID = Guid.NewGuid().ToString(), ' 也可复用你原工时记录的ID生成规则
            .DateX = currentRecord.日期属性名,
            .From = currentRecord.对应Excel最后一列的属性名,
            .ToX = nextRecord.对应Excel倒数第二列的属性名
        }
        breakView.Add(breakItem)
    End If
Next
注意事项
  • 请将代码中占位的属性名替换为你MyClass中实际定义的对应属性名即可使用。
  • 可根据业务需求增加额外校验逻辑,比如判断提取的From时间早于ToX时间,排除无效的休息时段。
  • 如果需要对同一日期的休息时段做排序,可在所有记录提取完成后对breakView按From字段做排序处理。

内容的提问来源于stack exchange,提问作者Freeze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 07:24:01