using System.Collections.Generic;
public static Dictionary<string,string> dict = new Dictionary<string,string>();
public static Dictionary<string,string> dictCopy = new Dictionary<string,string>();
public static List<string> listOrder = new List<string>();
public static List<string> beforeOrder = new List<string>();
public static void Main()
string[] testPackagesInput = {"KittenService: ","Leetmeme: Cyberportal","Cyberportal: Ice","CamelCaser: KittenService","Fraudstream: ","Ice: Leetmeme","asdf: Leetememe"};
var cleanDictionary = getPackages(testPackagesInput);
var loopy = hasLoopDict(cleanDictionary);
public static Dictionary<string,string> getPackages(string[] input){
Dictionary<string,string> packages = new Dictionary<string, string>();
foreach (var item in input){
var splitString = item.Split(new string[] {": "},System.StringSplitOptions.None);
packages.Add(splitString[0],splitString[1]);
beforeOrder.Add(splitString[0]);
beforeOrder.Add(splitString[1]);
public static void printList(List<string> myList){
foreach (var item in myList){
toPrint = toPrint + " -> " + item;
Console.WriteLine(toPrint);
public static void SaveOrder(string key) {
while(toRemove != "done"){
foreach(var item in dictCopy){
Console.WriteLine(toRemove);
dictCopy.Remove(toRemove);
public static bool hasLoopDict(Dictionary<string,string> dict) {
listOrder = new List<string>();
if(dict == null){return false;}
while(dictCopy.Count != 0){
if(dictCopy.ContainsValue("")){
var first = dictCopy.First().Value;
Console.WriteLine("Complete");