static void Main(string[] args) { MultiDictionary <int, string> dictionary = new MultiDictionary <int, string>(); dictionary.Add(1, "one"); dictionary.Add(2, "two"); dictionary.Add(3, "three"); dictionary.Add(1, "ich"); dictionary.Add(2, "nee"); dictionary.Add(3, "sun"); ICollection <string> values1 = dictionary.Values; StringBuilder sb = new StringBuilder(); if (dictionary.Count > 0) { Console.WriteLine("complete list:"); Console.WriteLine(); int i = 1; iter = dictionary.GetEnumerator(); while (iter.MoveNext()) { sb.Append("Key: "); sb.Append(iter.Current.Key.ToString()); sb.Append(" Value: "); sb.Append(iter.Current.Value.ToString()); Console.WriteLine(sb.ToString()); i++; sb.Clear(); } Console.WriteLine(); } System.Collections.Generic.ICollection <int> keys = dictionary.Keys; ICollection <string> values2 = dictionary.Values; bool test = dictionary.Contains(3, "three"); bool test2 = dictionary.Remove(3, "three"); bool test3 = dictionary.Contains(3, "three"); Console.WriteLine(); Console.WriteLine("list after removing {3,three}"); iter = dictionary.GetEnumerator(); if (dictionary.Count > 0) { int i = 1; while (iter.MoveNext()) { sb.Append("Key: "); sb.Append(iter.Current.Key.ToString()); sb.Append(" Value: "); sb.Append(iter.Current.Value.ToString()); Console.WriteLine(sb.ToString()); i++; sb.Clear(); } } Console.WriteLine(); bool test4 = dictionary.Remove(3); bool test5 = dictionary.Contains(3, "sun"); Console.WriteLine("list after removing key number 3:"); Console.WriteLine(); iter = dictionary.GetEnumerator(); if (dictionary.Count > 0) { int i = 1; while (iter.MoveNext()) { sb.Append("Key: "); sb.Append(iter.Current.Key.ToString()); sb.Append(" Value: "); sb.Append(iter.Current.Value.ToString()); Console.WriteLine(sb.ToString()); i++; sb.Clear(); } } }