using System.Collections.Generic;
public enum columns { Parts_Column, Questions_Column, Answers_Column, Reset_Amount };
public static void Main()
List<string> orderedRects = new List<string>() { "item1","item2","item3","item4","item5","item6" };
Dictionary<columns, List<int>> TheDictionary = new Dictionary<columns, List<int>>();
TheDictionary.Add(columns.Parts_Column, new List<int>() { 1 } );
TheDictionary.Add(columns.Questions_Column, new List<int>() { 2, 4 } );
TheDictionary.Add(columns.Answers_Column, new List<int>() { 3, 5 } );
TheDictionary.Add(columns.Reset_Amount, new List<int>() { 6 } );
int reset = TheDictionary[columns.Reset_Amount][0];
List<int> PartsColumnResults = new List<int>();
List<int> QuestionsColumnResults = new List<int>();
List<int> AnswersColumnResults = new List<int>();
for(int i = 0; i < orderedRects.Count;i++)
foreach (var pair in TheDictionary.Where(x => x.Value.Contains(count)))
if(pair.Key.Equals(columns.Parts_Column)) { PartsColumnResults = TheDictionary[columns.Parts_Column]; }
if(pair.Key.Equals(columns.Questions_Column)) { QuestionsColumnResults = TheDictionary[columns.Questions_Column]; }
if(pair.Key.Equals(columns.Answers_Column)) { AnswersColumnResults = TheDictionary[columns.Answers_Column]; }
foreach(var r in QuestionsColumnResults)