What exception type should be thrown when trying to add duplicate items to a collection?
Well, Dictionary<,>.Add()
throws ArgumentException
if such key already exists, so I guess this could be a precedent.
Linq uses two more exceptions DuplicateNameException and DuplicateKeyException you can use these if you are using system.data assembly.
ArgumentException would probably be the best. This is the exception thrown when an argument is invalid.