-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 に答える