LINQDynamicLibraryで少し実験を始めました。一連のLINQステートメントをいくつかまたは1つの動的LINQクエリに置き換えようとしています。私の既存の静的クエリは次のとおりです。
private List<TicketChartData> GenerateImpl(IList<ServiceItem> myList)
{
var output = from ticket in myList
group ticket by ticket.Region into grouped
orderby grouped.Count() descending
select new TicketChartData(grouped.Key, grouped.Count(), grouped.ToList());
return output.ToList();
}
ご覧のとおり、私の作業単位はですServiceItem
。これはすべて正常に機能し、でグループ化された結果セットを取得しRegion
ます。DynamicLibraryを使用して、有効な動的フィールドでグループ化できるようにすることを試みています(検証は個別に処理します)。そこで、DynamicLibraryを使用して同じクエリを作成しようとしましたが、あまり成功しませんでした。もちろんコンパイルされない新しいメソッドは次のとおりです。
private List<TicketChartData> GenerateImpl(IList<ServiceItem> myList, string field)
{
IQueryable<ServiceItem> queryableList = myList.AsQueryable<ServiceItem>();
IQueryable groupedList = queryableList.GroupBy(field,"it").
OrderBy("Key descending").
Select("new (Key as Key)"); // Not what i need
return output.ToList();
}
Count
グループ化からもを抽出することもできませんでしたList
。どうすればよいですか?私は解決策を探すのにかなりの時間を費やしました。可能であれば、Reflectionの使用を避けたいと思います。私は次のリンクでこの前にいくつかのポインタを持っていますが、それは私の実際の問題を助けません。助けてくれてありがとう。
System.LINQ.Dynamic:Select( "new(...)")into List <T>(またはその他の列挙可能な<T>のコレクション)