HashTable com itens expiráveis

Eu quero implementar umHashTable (ou talvez umHashSet ouDictionary) que possui membros únicos que expiram após um tempo. Por exemplo

// Items expire automatically after 10 seconds (Expiration period = 10 sec)
bool result = false;
// Starting from second 0
result = MyHashSet.Add("Bob");   // second 0 => true
result = MyHashSet.Add("Alice"); // second 5 => true
result = MyHashSet.Add("Bob");   // second 8 => false (item already exist)
result = MyHashSet.Add("Bob");   // second 12 => true (Bob has expired)

Como fazer isso com segurança e com custos mais baixos?

questionAnswers(3)

yourAnswerToTheQuestion