我有一个数据表,如下所示
╔═══════════════╦═══════════════╦═══════════════╗
║ 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 ║ ║
╚═══════════════╩═══════════════╩═══════════════╝
这只是一个示例数据表,Real Datatable 具有更复杂的名称和颜色,正如您所看到的,现在使用 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 的新手,我想知道这样做的最佳方法是什么,我正在使用的数据表有大约 112000 条记录
所以基本上,我需要将价格相同的产品添加到一个组中,并在每个产品旁边添加一个数字,将点添加到组中
只需按价格对行进行分组,然后循环遍历将组中每行的组字段设置为组号的组。
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