static void Main(string[] args) { CustomDictionary <int, string> dict = new CustomDictionary <int, string>(); CustomDictionary <string, string> strDict = new CustomDictionary <string, string>(); int choice = 1; do { Console.Clear(); Console.WriteLine("1.Clear the dict\n2.Add an entry\n3.Remove an entry\n4.Fetch the value\n5.Simulate large number of key additions\n6.Try Simulating with string dictionary\n7.Exit\nPlease enter a choice"); choice = Convert.ToInt32(Console.ReadLine()); switch (choice) { case 1: dict = new CustomDictionary <int, string>(); Console.WriteLine("Dictionary cleared"); Console.ReadKey(); break; case 2: try { Console.WriteLine("Enter the key to add\n"); int key = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Enter the value of the key :"); string value = Console.ReadLine(); dict.Add(key, value); Console.WriteLine("Added successfully"); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); break; case 3: try { Console.WriteLine("Enter the key to remove :"); int key = Convert.ToInt32(Console.ReadLine()); dict.Remove(key); Console.WriteLine("Removed successfully"); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); break; case 4: try { Console.WriteLine("Enter the key to fetch value for :"); int key = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(dict[key]); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); break; case 5: try { using (StreamWriter writer = new StreamWriter(@"D:\outputText.txt")) { int min, max, numberOfElements; Console.WriteLine("Enter the start range of keys :"); min = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Enter the end range of keys :"); max = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Enter the number of keys to add :"); numberOfElements = Convert.ToInt32(Console.ReadLine()); Random rand = new Random(); for (int i = 0; i < numberOfElements; i++) { int num = rand.Next(min, max); try { dict.Add(num, (num * 2).ToString()); writer.WriteLine("Added " + num + " Array Capacity : " + dict.CustomDictionaryArrayCapacity + " Number of keys : " + dict.KeysCount + " Number of Non empty positions : " + (dict.CustomDictionaryArrayCapacity - dict.NumberOfEmptyArrayPositions) + " Fill Ratio : " + dict.ArrayFillRatio); //Console.WriteLine("Added " + num + " Array Capacity : " + dict.CustomDictionaryArrayCapacity + " Number of keys : " + dict.KeysCount + " Number of Non empty positions : " + (dict.CustomDictionaryArrayCapacity - dict.NumberOfEmptyArrayPositions) + " Fill Ratio : " + dict.ArrayFillRatio); } catch (Exception ex) { //Console.WriteLine("Could not add the number " + num); writer.WriteLine("Could not add the number " + num); } } } Console.ReadKey(); } catch (Exception ex) { Console.WriteLine("Outer exception : " + ex.Message); } break; case 6: List <string> names = new List <string>(); using (StreamReader reader = new StreamReader(@"D:\namesList.txt")) { string line = ""; while ((line = reader.ReadLine()) != null) { names.Add(line.Trim()); } } try { using (StreamWriter writer = new StreamWriter(@"D:\strDictOutputText.txt")) { for (int i = 0; i < names.Count; i++) { try { strDict.Add(names[i], names[i] + "_value"); writer.WriteLine("Added " + names[i] + " Array Capacity : " + strDict.CustomDictionaryArrayCapacity + " Number of keys : " + strDict.KeysCount + " Number of Non empty positions : " + (strDict.CustomDictionaryArrayCapacity - strDict.NumberOfEmptyArrayPositions) + " Fill Ratio : " + strDict.ArrayFillRatio); //Console.WriteLine("Added " + num + " Array Capacity : " + dict.CustomDictionaryArrayCapacity + " Number of keys : " + dict.KeysCount + " Number of Non empty positions : " + (dict.CustomDictionaryArrayCapacity - dict.NumberOfEmptyArrayPositions) + " Fill Ratio : " + dict.ArrayFillRatio); } catch (Exception ex) { //Console.WriteLine("Could not add the number " + num); writer.WriteLine("Could not add the name " + names[i]); } } } Console.ReadKey(); } catch (Exception ex) { Console.WriteLine("Outer exception : " + ex.Message); } break; case 7: break; default: Console.WriteLine("Please enter a valid choice"); Console.ReadKey(); break; } } while (choice != 6); }