private void RecursiveAdd(int depth, List <object> coordinates, FractalDictionary instance, object value) { if (depth == 0) { instance.content = value; /* * if (instance.innerDictionary != null) * { * instance.innerDictionary = null; * totalInnerDictionaries--; * } */ } else { FractalDictionary iteration; instance.innerDictionary.TryGetValue(coordinates[coordinates.Count - depth], out iteration); if (iteration == null) { iteration = new FractalDictionary(); instance.innerDictionary[coordinates[coordinates.Count - depth]] = iteration; } RecursiveAdd(depth - 1, coordinates, iteration, value); } }
private object RecursiveTryGet(int depth, List <object> coordinates, FractalDictionary instance) { if (depth == 0) { return(instance.content); } else { FractalDictionary iteration; instance.innerDictionary.TryGetValue(coordinates[coordinates.Count - depth], out iteration); if (iteration != null) { return(RecursiveTryGet(depth - 1, coordinates, iteration)); } else { return(null); } } }