按顺序值对数据表进行分组



我有一个表,有2列clmAgeclmPrice,如

Age Price
1  ,  100 
2  ,  100
3  ,  150
4  ,  150
5  ,  100
6  ,  100
7  ,  100

不同年龄的价格可能是相同的,我需要所有连续年龄的最小和最大年龄具有相同的价格。我需要对数据进行分组,这样我的结果就像:

1-2 , 100  
3-4 , 150
5-7 , 100

试试这个

Imports System.Data
Module Module1
    Sub Main()
        Dim dt As New DataTable()
        dt.Columns.Add("clmAge", GetType(Integer))
        dt.Columns.Add("clmPrice", GetType(Integer))
        dt.Rows.Add(New Object() {1, 100})
        dt.Rows.Add(New Object() {2, 100})
        dt.Rows.Add(New Object() {3, 150})
        dt.Rows.Add(New Object() {4, 150})
        dt.Rows.Add(New Object() {5, 100})
        dt.Rows.Add(New Object() {6, 100})
        dt.Rows.Add(New Object() {7, 100})
        Dim oldPrice = 0
        Dim groups As New List(Of Group)
        Dim newGroup As Group = Nothing
        For Each row As DataRow In dt.AsEnumerable()
            If row("clmPrice") <> oldPrice Then
                newGroup = New Group()
                groups.Add(newGroup)
                newGroup.minAge = row("clmAge")
                newGroup.price = row("clmPrice")
            End If
            newGroup.maxAge = row("clmAge")
            oldPrice = row("clmPrice")
        Next row
    End Sub
End Module
Public Class Group
    Public minAge As Integer
    Public maxAge As Integer
    Public price As Integer
End Class

相关内容

  • 没有找到相关文章

最新更新