4

使用 linq 查询,如何将参数传递给 groupby 函数?取决于用户的选择,它将被不同地分组

 var query = (from to in OrderQuery
                     group to by to.FromDateUtc into groupedDate
                     let grouped = groupedDate.GroupBy(o => o.Name)

我想传递不同的 groupby 值。任何想法?

干杯

4

2 回答 2

2

一般来说,您需要对此进行不同的查询。根据用户选择构建不同的WHEREorWhere(...)子句也是如此:

var query = OrderQuery;
if (userSelection == "GroupByName") {
    query = from to in query
            group to by to.FromDateUtc into groupedDate
            let grouped = groupedDate.GroupBy(o => o.Name);
}
else if (userSelection == "GroupBySomethingElse") {
    query = from to in query
            group to by to.FromDateUtc into groupedDate
            let grouped = groupedDate.GroupBy(o => o.SomethingElse);
}

在将分组应用于query. 因为 LINQ 使用延迟执行,您可以query在枚举结果之前根据需要进行尽可能多的修改,并且不会对性能造成影响。

于 2012-04-24T16:58:08.427 回答
0

如果你正在尝试做这样的事情

SELECT * FROM <TableName> GROUP BY <Column1>,<Column2>

然后看看这个帖子

按多列分组

于 2012-04-24T17:04:04.807 回答