Ejemplo n.º 1
0
        void Dump(StringBuilder sb, QueryGroup group, int depth, bool showDetails, ref int printedGroupsCount, ref int printedComponentsCount)
        {
            sb.Append(new string(' ', depth * 2));
            printedGroupsCount++;
            sb.AppendLine(showDetails ? group.ToString() : group.Name);

            for (int i = 0, groupIndex = group.GroupStartIndex; i < group.GroupCount; i++)
            {
                Dump(sb, Groups[groupIndex], depth + 1, showDetails, ref printedGroupsCount, ref printedComponentsCount);
                groupIndex += 1 + Groups[groupIndex].TotalGroupCount;
            }

            for (int i = 0; i < group.ComponentCount; i++)
            {
                printedComponentsCount++;
                var index = group.ComponentStartIndex + i;
                sb.AppendLine(new string(' ', (depth + 1) * 2) + (index >= Components.Count ? "<OutOfBounds>" : Components[index].ToString()));
            }
        }