簡體   English   中英

VB.NET LINQ按多列分組

[英]VB.NET LINQ Group By Multiple Columns

我有下面的LINQ代碼,它有語法錯誤,我不知道如何解決它

         Dim query =
        From row In mainDatatable.AsEnumerable

    'the syntax Error is in the following line
      Group row By new  { row.Field(Of Double)("cprice") , row.Field(Of Integer)("ccategory")} 
Into ProductGroups
    '**************************

                Dim grpNumber = 1
                For Each grp In query
                    For Each row In grp.ProductGroups
                        row.SetField("gnum", grpNumber)
                    Next
                    grpNumber += 1
                Next


            End Sub

那我在做什么錯?

這是表格的樣子,我想按列cprice和ccategory分組

+---------------+---------------+-----------+------+
| Product Name  | cprice        | ccategory | gnum |
+---------------+---------------+-----------+------+
| Skirt Red     |            99 |         1 |      |
| Jeans Blue    |            49 |         2 |      |
| Jeans Black   |            49 |         2 |      |
| Skirt Blue    |            99 |         1 |      |
| T-shirt White |            20 |         2 |      |
| T-shirt Green |            20 |         2 |      |
| Jeans Grey    |            49 |         2 |      |
+---------------+---------------+-----------+------+

嘗試這個:

new with { Key.Price = row.Field(Of Double)("cprice") ,
           Key.Category = row.Field(Of Integer)("ccategory")

使用Key修飾符,這將創建一個匿名類型,該匿名類型基於其成員的相等性實現相等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM