Use Generic GroupDescriptor
This help article will show you how to create generic expression GroupDescriptors
Generic GroupDescriptor
You can also group objects by the result of an equally complex operation:
Example 1: Create a generic GroupDescriptor
var descriptor = new GroupDescriptor<Employee, int, int>
{
GroupingExpression = e => e.Orders.Where(o => o.Details.Any(d => d.Product.ProductName.Contains("Syrup"))).Count(),
SortDirection = ListSortDirection.Ascending
};
For more information you can check the Grouping section.