我已经开始尝试使用 LINQ DynamicLibrary。我试图用几个或一个动态 LINQ 查询替换一堆 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();
}
我无法从分组中提取 theCount
或 the 。List
我该怎么做呢?我花了相当多的时间寻找解决方案。如果可能的话,我希望能够避免使用反射。我在以下链接的前面有一些指示,但这对我的实际问题没有帮助。提前感谢您的帮助。
System.LINQ.Dynamic:将 Select("new (...)") 放入 List<T>(或任何其他可枚举的 <T> 集合)