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

一般的に、これにはさまざまなクエリが必要です。同じことが、ユーザーの選択に基づいて異なるWHEREまたは句を構築する場合にも当てはまります。Where(...)

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 に答える