/* 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); }
/* 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); }