-2

我有一个如下所示的数据表

╔═══════════════╦═══════════════╦═══════════════╗
║ Product Name  ║ Product Price ║ Product Group ║
╠═══════════════╬═══════════════╬═══════════════╣
║ Skirt Red     ║            99 ║               ║
║ Jeans Blue    ║            49 ║               ║
║ Jeans Black   ║            49 ║               ║
║ Skirt Blue    ║            99 ║               ║
║ T-shirt White ║            20 ║               ║
║ T-shirt Green ║            20 ║               ║
║ Jeans Grey    ║            49 ║               ║
╚═══════════════╩═══════════════╩═══════════════╝

这只是一个示例数据表,真实数据表具有更复杂的名称和颜色,正如您所看到的,现在使用 LINQ 有不同颜色的类似产品我想让数据表看起来像下面

╔═══════════════╦═══════════════╦═══════════════╗
║ Product Name  ║ Product Price ║ Product Group ║
╠═══════════════╬═══════════════╬═══════════════╣
║ Skirt Red     ║            99 ║             1 ║
║ Jeans Blue    ║            49 ║             2 ║
║ Jeans Black   ║            49 ║             2 ║
║ Skirt Blue    ║            99 ║             1 ║
║ T-shirt White ║            20 ║             3 ║
║ T-shirt Green ║            20 ║             3 ║
║ Jeans Grey    ║            49 ║             2 ║
╚═══════════════╩═══════════════╩═══════════════╝

什么定义了一个组?价格相同,名称无关。

我是 LINQ 的新手,我想知道最好的方法是什么,我正在使用的 Datatable 有大约 112000 条记录

所以基本上,我需要将具有相同价格的产品添加到一个组中,并在每个产品旁边添加一个数字,将点数添加到组中

4

1 回答 1

1

只需按价格对行进行分组,然后循环遍历组,将组中每一行的组字段设置为组号。

Dim query =
    From row in table.AsEnumerable
    Group row By Price = row.Field(Of Integer)("Product Price") Into ProductGroups = Group
Dim grpNumber = 1
For Each grp In query
    For Each row In grp.ProductGroups
        row.SetField("Product Group", grpNumber)
    Next
    grpNumber += 1
Next
于 2012-09-17T14:04:39.993 回答