【问题标题】:Grouping data with dynamic keys with Linq使用 Linq 使用动态键对数据进行分组
【发布时间】:2018-05-30 16:30:13
【问题描述】:

我正在使用 System.Linq.Dynamic 将对象列表分组到具有两个代码的对象列表的新分组列表中:

Dim lstGroupedFilterNew = lstDataSource _
                .GroupBy("New (Unit_ID, Itinerary_ID Driver_ID)", "grp") _
                .[Select](Function(grp) grp.ToList()).ToList()

但我收到错误 lambda 表达式无法转换为“字符串”,因为“字符串”不是我的选择子句中的委托类型

【问题讨论】:

    标签: vb.net linq dynamic group-by


    【解决方案1】:

    我选择不使用 Linq.Dynamic,我发现了一种验证条件的方法,可以将键动态添加到我的 GroupBy 子句中,结果是这样的:

    Dim lstGroupedFilter = (From t In lstDataSource Group t By __groupByKey1__ = _
                              New With {Key .Unit_ID = (If(blnUnit, t.Unit_ID, 0)), Key .Itinerary_ID = If(blnItinerary, t.Itinerary_ID, 0), Key .Driver_ID = If(blnDriver, t.Driver_ID, 0)} _
                              Into g = Group Select g.ToList()).ToList()
    

    这是一个动态添加键并生成类似于 solution 的结果的选项。

    【讨论】:

      猜你喜欢
      • 2013-01-23
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 2023-03-24
      • 2019-09-27
      相关资源
      最近更新 更多