How to perform correctly “group by” in linq on DataTable inside vb code?

后端 未结 2 1109
清酒与你
清酒与你 2021-01-14 20:58

Why isn\'t the following group by clause working? The original question was how do I perform group in LINQ inside vb code (dot.net v4.0) with DataTable and sum on the group?

2条回答
  •  栀梦
    栀梦 (楼主)
    2021-01-14 21:21

    In VB.NET, the syntax for grouping by composite keys is comma-separated keys, not an anonymous type:

                     (From e In table
                      Group e By
                        GroupName = e("GroupName"),
                        ProductName = e("ProductName")
                      Into Group
                      Select New With {
                        .ProductName = ProductName,
                        .QTY = Group.Sum(Function(x) Convert.ToInt32(x("QTY"))),
                        .GroupName = GroupName
                     })
    

    With your syntax, it just uses the default equality comparer on the anonymous objects, which doesn't compare the fields.

提交回复
热议问题