static void Main()
    {
        BiDictionary<string, string, int> people =
            new BiDictionary<string, string, int>(true);
        people.AddItem("Gosho", "Bozhilov", 15);
        people.AddItem("Matey", "Kaziiski", 15);
        people.AddItem("Ivan", "Kaziiski", 17);
        people.AddItem("Ivan", "Petrov", 55);
        people.AddItem("Ivan", "Kaziiski", 12);

        var bykey1 = people.GetElementsByKey1("Ivan");
        foreach (var item in bykey1)
        {
            Console.WriteLine(item.key1 + " " + item.key2 + ", age: " + item.value);
        }

        Console.WriteLine("-------------------------");

        var bykey2 = people.GetElementsByKey2("Kaziiski");
        foreach (var item in bykey2)
        {
            Console.WriteLine(item.key1 + " " + item.key2 + ", age: " + item.value);
        }

        Console.WriteLine("-------------------------");

        var bykey1and2 = people.GetElementsByKey1AndKey2("Ivan", "Kaziiski");

        foreach (var item in bykey1and2)
        {
            Console.WriteLine(item.key1 + " " + item.key2 + ", age: " + item.value);
        }
    }