一般的に、これにはさまざまなクエリが必要です。同じことが、ユーザーの選択に基づいて異なる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
、結果を列挙する前に必要なだけ変更することができ、パフォーマンスに影響を与えることはありません。