protected virtual void ProcessResultOperators(StringBuilder sb)
{
ProcessSetOperators(
sb,
ResultOperators
.Where(it => it is ExceptResultOperator || it is IntersectResultOperator
|| it is UnionResultOperator || it is ConcatResultOperator)
.ToList());
ProcessGroupOperators(
sb,
ResultOperators.FindAll(it => it is GroupResultOperator).Cast<GroupResultOperator>().ToList());
ProcessLimitAndOffsetOperators(
sb,
ResultOperators.FindAll(it => it is TakeResultOperator).Cast<TakeResultOperator>().ToList(),
ResultOperators.FindAll(it => it is SkipResultOperator).Cast<SkipResultOperator>().ToList(),
ResultOperators.FindAll(it => it is FirstResultOperator).Cast<FirstResultOperator>().ToList(),
ResultOperators.FindAll(it => it is SingleResultOperator).Cast<SingleResultOperator>().ToList());
ProcessInOperators(
sb,
ResultOperators.FindAll(it => it is ContainsResultOperator).Cast<ContainsResultOperator>().ToList());
ProcessAllOperators(
sb,
ResultOperators.FindAll(it => it is AllResultOperator).Cast<AllResultOperator>().ToList());
if (ResultOperators.Exists(it => it is CountResultOperator || it is LongCountResultOperator))
ProcessCountOperators(sb);
if (ResultOperators.Exists(it => it is AnyResultOperator))
ProcessAnyOperators(sb);
}