示例#1
0
        /* Function: GetTopicGroups
         * Returns a list of <TopicGroups> for the passed <Topics>.
         */
        private static GroupedTopics GetTopicGroups(List <Topic> topics, int startingIndex = 0, int limitToFileID = 0)
        {
            GroupedTopics groupedTopics = new GroupedTopics(topics);

            int i = startingIndex;

            while (i < topics.Count &&
                   (limitToFileID == 0 || topics[i].FileID == limitToFileID))
            {
                int groupStart = i;
                int groupCount = 1;

                i++;

                while (i < topics.Count &&
                       (limitToFileID == 0 || topics[i].FileID == limitToFileID) &&
                       topics[i].IsGroup == false)
                {
                    groupCount++;
                    i++;
                }

                groupedTopics.CreateGroup(groupStart, groupCount);
            }

            return(groupedTopics);
        }
示例#2
0
        /* Function: GetTopicGroups
         * Returns a list of <TopicGroups> for the passed <Topics>.
         */
        private static GroupedTopics GetTopicGroups(List <Topic> topics, int startingIndex = 0, bool groupByFileID = true)
        {
            GroupedTopics groupedTopics = new GroupedTopics(topics);

            int i = startingIndex;

            while (i < topics.Count)
            {
                int fileID     = topics[i].FileID;
                int groupStart = i;
                int groupCount = 1;

                i++;

                while (i < topics.Count &&
                       (topics[i].FileID == fileID || !groupByFileID) &&
                       topics[i].IsGroup == false)
                {
                    groupCount++;
                    i++;
                }

                groupedTopics.CreateGroup(groupStart, groupCount);
            }

            return(groupedTopics);
        }