在Vb.Net中将唯一项添加到ListView

问题描述

我正在处理一个csv文件,并希望将信息汇总到列表视图中。 其背后的想法是要有一个包含四列的列表:

问题: 目前,我的代码正在添加所有条目(我理解这一点,因为在将它们添加到列表之前,我还没有添加任何检查以求和)

我的问题是,我该如何汇总这些信息并在摘要添加1行而不是单独添加几行?


lineDetail = New Line
                'populate line details
                lineDetail.OriginalOrderLine = originalOrderLine
                lineDetail.ProductCode = productCode
                lineDetail.OrderQuantity = orderQty
                lineDetail.SentQuantity = sentQty
                lineDetail.RevisedOrderQuantity = orderQty
                lineDetail.CustomerWSP = customerWSP
                lineDetail.NatProductCode = natProducCode
                lineDetail.CustProductCode = custProductCode
                lineDetail.customerRSP = customerRSP
                headerDetail.Lines.Add(lineDetail)

                'Add list to summary List
                Dim newDeliverable As Integer = ((sentQty / orderQty) * 100%)
                Dim strOrderWty As String = orderQty
                ListView1.Items.Add(New ListViewItem(New String() {customerCode,strOrderWty,sentQty,newDeliverable & " %"}))

enter image description here

解决方法

我使用了System.Linq 并在将信息添加到列表之前对其进行汇总,如下所示:

SummaryList =新列表(包含SummaryLines)

    For Each row In Headers
        SummaryList.Add(New SummaryLines(row.CustomerCode,row.Lines.Sum(Function(t) t.OriginalOrderLine),row.Lines.Sum(Function(t) t.RevisedOrderQuantity)))
    Next

最终结果如下所示: enter image description here