如何隔离列表项以执行其他数据操作?

克鲁格

我正在编写一个程序来帮助我们的人事部门输入薪资。SQL查询输出一个包含如下数据的文件:

1,E,REG,40.0000000
10,E,REG,11.5000000
10,E,REG,11.0000000
10,E,REG,5.5000000
10,E,REG,.0000000
10,E,REG,2.5000000
10,E,REG,3.5000000
10,E,REG,6.0000000
10,E,OT,5.5000000
10,E,OT,9.5000000

在VB中,我创建了一个名为Employee的类

Public Class Employee
     Public Property empNo As Integer
     Public Property eCode As String
     Public Property webCode As String
     Public Property hrsWork As Decimal

End Class

我已经能够从文件中获取信息并将其加载到列表中

Dim allEmployees = From line In System.IO.File.ReadLines("C:\file\testout.txt")
                       Let Columns = line.Split(","c)
                       Where Columns.Length = 4
                       Let empNum = Integer.Parse(Columns(0).Trim())
                       Let eCode = Columns(1)
                       Let webCode = Columns(2)
                       Let hrsWrk = Decimal.Parse(Columns(3))
                       Select New Employee With {.empNo = empNum, .eCode = eCode, .webCode = webCode, .hrsWork = hrsWrk}
Dim EmpList As List(Of Employee) = allEmployees.ToList()

接下来,我需要做的是浏览此列表,并按编号选择各个员工,然后按webCode(REG,OT等)汇总其工作时间。完成此操作后,我需要将它们输出回txt文件,HR可以将其导入我们的薪资系统。

输出文件应如下所示:

1,E,REG,40.0000000
10,E,REG,40.0000000
10,E,OT,15.0000000

整个文件等等。

我真的坚持如何隔离每位员工以继续。有什么建议?

普萨·庞杰伦德拉普

您可以使用循环读取时汇总数据。首先,为了简化循环并根据个人喜好,使Employee类足够聪明以创建自己:

Public Class Employee
    ...properties
    Public Sub New(items As String())
        empNo = Int32.Parse(items(0))
        eCode = items(1)
        webCode = items(2)
        hrsWork = Decimal.Parse(items(3))
    End Sub
End Class

该代码将拆分的数据传递给它,并允许它分配值。然后循环:

Dim eList As New List(Of Employee)
Dim line As String
Dim data() As String
Dim EmpId As Int32

Using sr As New StreamReader("C:\Temp\empsql.csv")
    Do Until sr.EndOfStream
        line = sr.ReadLine
        data = line.Split(","c)

        EmpId = Int32.Parse(data(0))
        ' find an emp with matching number and this "webcode"
        Dim oldemp = eList.
                 Where(Function(w) w.empNo = EmpId AndAlso w.webCode = data(2)).
                 FirstOrDefault()

        ' if emp does not exist, create one
        If oldemp Is Nothing Then
            Dim Emp = New Employee(data)
            eList.Add(Emp)
        Else
            ' add the current hours
            oldemp.hrsWork += Decimal.Parse(data(3))
        End If
    Loop
End Using

或者,您可以处理创建的原始数据的收集,而不是创建将在以后删除的项目,而不是创建项目,一个额外的步骤使您可以增加已读取任何记录的小时数。测试结果:

For Each emp In eList
    Console.WriteLine("{0}  {1}   {2}   {3}", emp.empNo, emp.eCode,
                      emp.webCode, emp.hrsWork)
Next

结果:

1  E   REG   40.0000000
10  E   REG   40.0000000
10  E   OT   15.0000000

要将其写回,除了在格式字符串中添加逗号并写入文件而不是调试窗口外,您可以执行相同的操作。

请注意,这String.Split不是解析CSV的理想选择。它可能会因几种常见故障而失败。TextFieldParser更强劲,看到该链接的一个例子。考虑到来源和内容,您可能是安全的,但值得一提。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击列表项时如何显示其他数据?

来自分类Dev

Linq如何将列表项与其他列表项合并

来自分类Dev

在Django UpdateView中执行form_valid操作后如何保存其他数据?

来自分类Dev

根据单击的项目操作ListView中的其他列表项目

来自分类Dev

删除列表项,无其他参考

来自分类Dev

如何使ExpandableListView的子级可点击并执行其他操作?

来自分类Dev

如何根据R中的其他行执行条件操作?

来自分类Dev

如何在无序列表中使列表项的宽度与其他项相同?

来自分类Dev

Android:如何锁定可通过ContentProvider访问的SQLite数据库(或执行原子条件操作的其他方式)

来自分类Dev

对列表中的每个项目以及列表中的每个其他项目执行操作

来自分类Dev

单击“全选”后,如何取消选中先前选择的其他选定列表项?

来自分类Dev

如何将选定的recyclerview列表项更改为标记为其他颜色

来自分类Dev

如何根据其他项目更改选定列表项目?

来自分类Dev

如何使 Jquery 可排序影响其他 ul 和列表项?

来自分类Dev

样式列表项不仅包含其他列表

来自分类Dev

关于过滤与其他列表对应的列表项的建议

来自分类Dev

如何使用sagas在即将执行其他操作时调度操作?

来自分类Dev

如何从列中的数据列表进行分组并执行操作

来自分类Dev

隐藏其他对象时剩余的浮动列表项

来自分类Dev

如何从其他操作注销

来自分类Dev

列表项出现在其他包含图像的列表项下面

来自分类Dev

jQuery Mobile导航栏中的列表项比其他列表项小

来自分类Dev

jQuery将列表项替换为具有特定类的其他列表项

来自分类Dev

出现在其他包含图像的列表项下面的列表项

来自分类Dev

jQuery Mobile导航栏中的列表项比其他列表项小

来自分类Dev

角度,如何将class设置为单击列表项并从其他li项中删除?

来自分类Dev

角度,如何将class设置为单击的列表项并从其他li项中删除?

来自分类Dev

textBox对象的文本更改事件:如何执行文本更改+其他操作

来自分类Dev

如何以root用户身份(最初)对其他非root用户容器执行某些操作?

Related 相关文章

  1. 1

    单击列表项时如何显示其他数据?

  2. 2

    Linq如何将列表项与其他列表项合并

  3. 3

    在Django UpdateView中执行form_valid操作后如何保存其他数据?

  4. 4

    根据单击的项目操作ListView中的其他列表项目

  5. 5

    删除列表项,无其他参考

  6. 6

    如何使ExpandableListView的子级可点击并执行其他操作?

  7. 7

    如何根据R中的其他行执行条件操作?

  8. 8

    如何在无序列表中使列表项的宽度与其他项相同?

  9. 9

    Android:如何锁定可通过ContentProvider访问的SQLite数据库(或执行原子条件操作的其他方式)

  10. 10

    对列表中的每个项目以及列表中的每个其他项目执行操作

  11. 11

    单击“全选”后,如何取消选中先前选择的其他选定列表项?

  12. 12

    如何将选定的recyclerview列表项更改为标记为其他颜色

  13. 13

    如何根据其他项目更改选定列表项目?

  14. 14

    如何使 Jquery 可排序影响其他 ul 和列表项?

  15. 15

    样式列表项不仅包含其他列表

  16. 16

    关于过滤与其他列表对应的列表项的建议

  17. 17

    如何使用sagas在即将执行其他操作时调度操作?

  18. 18

    如何从列中的数据列表进行分组并执行操作

  19. 19

    隐藏其他对象时剩余的浮动列表项

  20. 20

    如何从其他操作注销

  21. 21

    列表项出现在其他包含图像的列表项下面

  22. 22

    jQuery Mobile导航栏中的列表项比其他列表项小

  23. 23

    jQuery将列表项替换为具有特定类的其他列表项

  24. 24

    出现在其他包含图像的列表项下面的列表项

  25. 25

    jQuery Mobile导航栏中的列表项比其他列表项小

  26. 26

    角度,如何将class设置为单击列表项并从其他li项中删除?

  27. 27

    角度,如何将class设置为单击的列表项并从其他li项中删除?

  28. 28

    textBox对象的文本更改事件:如何执行文本更改+其他操作

  29. 29

    如何以root用户身份(最初)对其他非root用户容器执行某些操作?

热门标签

归档