Something that I find a use for in almost every project I work on, is the HashList (also known as a MultiMap in the Java world) that's been added in NGenerics 1.2. Simply put, a HashList is a multi-valued dictionary (one key, multiple values), that uses something like a Dictionary<TKey, IList<TValue>> under the covers. It still retains dictionary semantics, but handles the creation and destruction of the key/list pairs itself.
For example, adding a couple of items to the HashList will have the following result:
Removing the cow and the horse will result in the list (and the key) being removed from the dictionary, affecting both the key count and the value count. The HashList implements IEnumerable<KeyValuePair<TKey, IList<TValue>>, so items can be traversed in grouped order. Sure beats the heck out of having all that list management code sitting in your code base.