我使用System.Linq.Dynamic将对象列表分组到具有以下代码的对象列表的新分组列表中:
Dim lstGroupedFilterNew = lstDataSource _
.GroupBy("New (Unit_ID, Itinerary_ID Driver_ID)", "grp") _
.[Select](Function(grp) grp.ToList()).ToList()
但是我得到错误 lambda表达式无法转换为' string'因为' string'在我的select子句中不是委托类型。
答案 0 :(得分:0)
我选择不使用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的结果的选项。